WARNING 2022-06-18: This script has been found defective in the handling of reused citations – see Comments at the bottom.
UPDATE 2022-06-12: a version of the script now imports the RM8 ConfigTable to RM7 as it appears to be compatible with RM7, so far.
Because the RM8 import or conversion of a RM7 files seems to preserve the RM7 ConfigTable records such as settings for a Book in Publisher, the return of the data to RM7 will include those, making the round trip from RM7 to RM8 and back transparent except for Research Items and Folders.
Because it is possible that the RM8 ConfigTable could become incompatible with RM7, both the earlier and the amended versions of the script are listed below.
UPDATE 2022-05-14: with one fix, there is a procedure in RM8 that would be more attractive operationally than using these outboard scripts:
RM8’s File > Export Data > DropBox creates a copy of the active .RMTREE file to a RM7 compatible .RMGC file intended for use with the RootsMagic Mobile app (now retired for Android). It is a complete conversion except, in my test, for Roles for shared events, which should be an easy fix for the developers. In my test, the RoleTable was empty which invalidates every shared event.
Moreover, that Export copies over the ConfigTable records which appear to include Custom Reports and Book Publisher settings that originated in the RM7 database which had been converted to RM8, thereby making the round trip from RM7 to RM8 back to RM7 pretty much intact, except for possible losses in the area of Research Logs and Folders due to structural changes and the hopefully-to-be-fixed Roles for shared events.
Summary
This enhanced script now transfers Ancestry TreeShare data and FamilySearch data from RM8 to RM7, seemingly transparently, and converts #RM8 Tasks and Folders to #RM7 To-Do’s and Logs with some changes due to the different structures for these areas of the two versions of database. It is now a complete data transfer, including between ConfigTables.
Direct import with the script is orders-of-magnitude faster than GEDCOM export-import, approximately 2 minutes from a 330MB RM8 database file, a few seconds for a small one. It’s possible to edit in RM8 and view the result in a report from RM7 as fast or faster than in a report from RM8!
Procedure
Same as for Direct Import of RM8 database into RM7 – Part 1 but with one of these scripts:
Above version does not import the RM8 ConfigTable; the amended version below does.
Folders, and Logs, and Tags, and Tasks, and To-Do’s! Oh my!
Because of structural changes in these areas, I found it very difficult to understand fully how they relate and may not have succeeded. There is an element of irreversible conversion from RM7 to 8 that compromises what can come back because Folders and Logs are not identical. This is the least transparent part of the import and I won’t be surprised to hear of some problem with it.
Caveats
- The script was developed and tested (not very fully) using SQLiteSpy 1.9.15 with an extension for a fake RMNOCASE collation between databases from RootsMagic versions 8.1.8 and 7.7 on Windows 10. At some point, RootsMagic 8 or its successor will change in a way that breaks the script.
- It’s recommended to run the RM7 File>Database Tools>Rebuild Index on the target database after importing because the script applies a mismatching collation to the database table indexes, which may give rise to some erroneous behaviour in searching and sorting, more likely with alphabets other than Basic Latin.
- I can keep the source database file open in RM8 and the destination database file open in RM7 and run the script in SQLiteSpy which reads the first and reads and writes the second. There is a risk that a database file may appear to be locked by one of the applications which may result in an error in RootsMagic for which the only recourse is to close the program. The SQLite manager may get around the problem without restarting by issuing the command END TRANSACTION. If the RM8 database (alias “RM8db”) is still ATTACHed to the main database (the target RM7 database alias “main”) then issue the command DETACH DATABASE RM8db.
Updated to import the RM8 ConfigTable into RM7.
Tom, I believe that there is a conversion problem related to the rm8 feature to reuse citations. It appears that only the citation associated with the event of the last “paste reuse” gets converted back to rm7. I tested with SQLiteSpy and the Import_RM8_to_RM7-Part2.sql script.
Thanks for your alerting me to a procedural error in the script that loses all but the last use of a citation. Which renders it lossless only for databases for which no citations have been reused. To correct it entails considerable revision as it entails the creation of new records in the RM7 CitationTable (one for each use) along with new records for the MediaLinkTable (media tags for the new citations) and for the URLtable (webtags for the new citations) and, possibly, others.
Development and testing of an updated version that addresses the conversion of RM8 ‘uses’ of a ‘master’ citation to individual RM7 citations is discussed in the Forum at
https://sqlitetoolsforrootsmagic.com/forum/topic/direct-import-of-rm8-database-into-rm7-major-update/