Facts – Change Fact Type #facttypes #events

A script that converts all events of one fact type to another in a fraction of a second. Enter the name of the current event as you see it in the Edit Person screen or as you see it in the Abbrev field of Lists > Fact Type List. Then the value of the Abbrev field for the fact type to which you want the events transformed. When entered, the UPDATE process proceeds.

First of two run-time parameters to be entered to change all events of one fact type to another. Screen clip from SQLite Expert Personal.

Requires SQLite Expert Personal with fake RMNOCASE extension loaded or an equivalent SQLite manager that also supports the entry of runtime variables.

Because this modifies your database, BACKUP FIRST! After executing, you should use RootsMagic Database Tools to check integrity and, if not OK, rebuild indexes.

Facts_shared-ChangeType.sql This much more complex script does support shared events.

Facts-ChangeType.sql Warning! Use this script only if the fact type you want to convert from is not used for shared events. This script does not support non-Principal roles for shared events.

The script supporting the conversion of shared events looks for role(s) in the target fact type that match the name and sentence template of those used by events of the originating fact type. For those that do not match, a duplicate of the current role is created for the target fact type. Sharers of the transformed event are assigned these existing or new roles. The original role definitions remain intact. Should events be converted back to their original fact type, no new roles will be created provided no change has been made in either the original or target role name or sentence.

Discussions & comments from Wikispaces site


Newbie successfully used this!

25 July 2017 18:33:32

Have never touched SQLite before today (although I do have a somewhat minimal exposure to programming) but was able to piece together the proper program, with the proper fake RMNOCASE extension, and the above script (after a couple of false starts) and within two hours from start to finish had successfully modified my RootsMagic database that was imported from FTM 2014.

I didn’t like the way the import put the FTM Description fields on major facts (Birth, Baptism, Marriage, Naturalization, Death, Burial, Probate) into Place details so, before the import, I used the built-in FTM option to move all those facts to corresponding temporary facts (TBirth, TBaptism, TMarriage, TNaturalization, TDeath, TBurial, TProbate). Imported the file to RootsMagic and used the above script to move all the data back to the original fact. Worked like a charm. I ran the Database tools after and everything worked splendidly. On 18,165 people tree. Would have taken years to do this manually person by person which is the only option within RootsMagic.

Have spot checked people and everything, including the more complex shared marriage fact is functioning exactly as they should.

Thank you Tom! Wish I had tried it back in Jan of 2016 instead of continuing with FTM but I guess things happen at the time they are meant to happen.

3 Replies to “Facts – Change Fact Type #facttypes #events

  1. You are a lifesaver! You have saved me eighty hours of manual labor! I used to be a programmer (40 years ago, BASIC and FORTRAN), and was able learn how to use SQLite Expert, with your script, to change an offending fact type very easily.

    Can you help with another problem? I need to move information (a person’s age) from the Place Detail field in a Census fact to the Description field, but only IF the Description field is blank.

    How can I send you a private communication?

  2. Glad to hear of your success, Miguel. I was never employed as such but my first exposure to programming was to a flavour of Fortran called Kingstran at Uni around 54 years ago.

  3. Tom, I have a similar problem. I am working on a huge database for one of the indian reservations compiling their annual reservation census records with the federal and state records. I recently realized that I used the wrong fact type “Residence” when I should have used “Census” for the first 15 years of annual census. The each year of the annual census shares a common date being 30 Jun followed by the census year. I need something that will search the fact types looking for Residence and when it sees a date starting with 30 Jun, change that corresponding record to Census. Spent years as a programmer, just never have used SQLite; but I’m sure I can pick it up quick. Can you point me in a direction?

Leave a Reply