glx migrate
Migrate an archive to the current format
Synopsis
Converts deprecated person properties (born_on, born_at, died_on, died_at, buried_on, buried_at) to birth/death/burial events.
For each person with deprecated properties:
- Creates a birth, death, or burial event if none exists
- Merges date/place into existing events if fields are empty
- Never overwrites existing event data
- Converts assertions to reference the event instead of the person property
With --rename-gender-to-sex, also renames the legacy gender person property (and any related assertions and inlined vocabulary entries) to sex, completing the two-field-model split introduced in #528.
With --confidence-disputed-to-status, moves the legacy confidence: disputed signal to status: disputed, separating evidence quality (confidence) from conclusion state (status) per #516. Confidence is cleared on each touched assertion; existing non-disputed statuses are preserved with a warning so the user can reconcile by hand.
With --source-description-to-property, moves a Source's legacy top-level description field into properties.description, completing the structural-field-to-vocabulary-property consolidation from #667. An explicit properties.description is never overwritten.
With --media-description-to-property, moves a Media's legacy top-level description field into properties.description, mirroring the Source treatment from #667 for the remaining structural-vs-property inconsistency on Media (#894). An explicit properties.description is never overwritten.
With --rename-ssn-to-national-id, renames the legacy US-centric ssn person property (and any related person-subject assertions and inlined vocabulary definition) to the internationalized national_id per #532. Both keys map to the GEDCOM SSN tag, so GEDCOM import/export is unaffected. A person or vocabulary already carrying national_id is never overwritten.
glx migrate [archive] [flags]Examples
# Migrate a multi-file archive
glx migrate ./my-archive
# Migrate a single-file archive
glx migrate archive.glx
# Also rename legacy 'gender' person properties to 'sex'
glx migrate ./my-archive --rename-gender-to-sex
# Also move legacy 'confidence: disputed' to 'status: disputed'
glx migrate ./my-archive --confidence-disputed-to-status
# Also move legacy top-level source 'description' into 'properties.description'
glx migrate ./my-archive --source-description-to-property
# Also move legacy top-level media 'description' into 'properties.description'
glx migrate ./my-archive --media-description-to-property
# Also rename the legacy US-centric 'ssn' person property to 'national_id'
glx migrate ./my-archive --rename-ssn-to-national-idOptions
--confidence-disputed-to-status Move legacy 'confidence: disputed' to 'status: disputed' (evidence quality vs conclusion state, #516)
-h, --help help for migrate
--media-description-to-property Move legacy top-level media 'description' into 'properties.description' (#894)
--rename-gender-to-sex Rename the legacy 'gender' person property to 'sex' (two-field-model split, #528)
--rename-ssn-to-national-id Rename the legacy US-centric 'ssn' person property to 'national_id' (#532)
--source-description-to-property Move legacy top-level source 'description' into 'properties.description' (#667)Options inherited from parent commands
-q, --quiet Suppress non-error output (where supported)SEE ALSO
- glx - GENEALOGIX CLI - Manage and validate genealogy archives