One manual way to migrate (using the own internal language of the Eeschema files):
- Backup your project first, just for safety.
- Copy your “-cache.lib" as "-rescue.lib” (as example);
- Open the *.sch in a text editor;
- Replace strings in all the text "\nL " to “\nL Project:” (\n in the indication of new line, so “L” is in the begin of the line);
- Open the schematic in the new Eeschema but cancel all the automatic migration;
- In the symbol table import your “*-rescue.lib” as “Project” in the local (project libraries);
- Restart Eeschema / KiCad;
- Re-open the schematic (probably you be not asked you to synchronize the library).
I used this method tho migrate a 9 files (hierarchical) project and had almost no issue (the only founded is related to one new version of a MCP4922 in the internal library that use “/” in the name and create some problem in the cache interpretation). With my old projects with just 1 schematic file I had no error at all.
I had to do manually, because the automatic procedure couldn’t deal with this big project. And this procedure as inspired in the step 5 of https://kicad.org/post/symbol-lib-table/.
I hope this would help someone.