Gramps ID Reordering

[v5.1.5 @ Win10]

Does the reordering of Gramps IDs (assuming no change in ID formats) simply “defrag” the ID numbering space for a given object-type to eliminate interspersed unused IDs of deleted objects?

Can it renumber person object IDs starting with the first ancestor of the current tree?


The Reorder Gramps ID tool has a fairly limited amount of intelligence.

It is a simple packing tool that is mostly cognizant with order of creation as a criteria. Here’s a Maillist discussion thread that mentions some changes of the Gramps 5.0 version of the tool.

(There’s an interesting thread in the Maillist archive about customizing the reordering functionality.)

And another thread from 2019, “Gramps-devel: Gramps data model, adding more IDs”, with a proposal for extending the IDs model to support cross-referencing to external authority IDs.

No. It processes records in the order they were created.

I use the Reorder Gramps ID to resequence the ID’s “defragging” the list after merging or deleting records. I do this about once a month.

I select “Change” for all areas of the database and uncheck “Keep”.

If you have custom ID’s (most likely in Places using some of the auto import tools), you might want to exclude them from this process or definitely make sure their “Keep” option is selected.

As with any batch edit tool, make sure you have a recently created backup. There is no “undo” after this process. The only way to undo any changes would be to import the backup file into a new database.

1 Like


I found the explanation of the effects of “Change” and “Keep” in the Wiki Manual confusing and I am not sure I understand them correctly.

It seems that “Change” enables the Reordering whereas “Keep” enables the Reformatting? If so, they should be simply labeled as “Reorder” and “Reformat” respectively.

If all you want to do is reformat the ID’s like expanding the leading zeros you do not have to use “Change” or “Keep”. Just change the digit size and/or the leading letter then “OK”. “Change” defrags the missing numbers. “Keep” leaves any custom ID you have set totally as is.

Gramps does not use the ID in its internal workings. But other programs need it so it must be there and must be unique. The ID’s are used in filtering and selection as a convenience to users. It is an identifier available to the user. The default are four digit numbers with the leading letter. 0000 to 9999. Gramps will automatically go past 9999 to 10000… 10001… 10002… But the user needs to expand their ID’s because if you need to filter and want “I1000”, that person will return in the filter but so will “I10000”, “I10001”, “I10002”… Changing the format will add the leading zeros to existing ID’s.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.