Can id / gids change over time?

Tags: #<Tag:0x00007f756ae96678> #<Tag:0x00007f756ae965b0>

Hi there, I’m writing an application around the MusicBrainz database and I was wondering how likely it is for an artist/release/record/track 's id or gid to change over time. I’m asking this since my app relies on those ids and it’d be rather problematic if those changed later on, and my app kept pointing to the now old ids/gids .

If there was a chance of that happening, would there be a way to anticipate it, or notice it in some way? I know there is some kind of log of all the changes being done to the DB, but I’m not sure if id/gid changes would be part of that log.

anyone got an idea??



1 Like

They change with each merge.
Then only merge target MBID (GID) remains visible but old ones still points to merged entity.
But row IDs (integers) are lost, but you should not use them anyway.


thanks for replying back, so are you saying gids won’t change over time between merges? Once set, they are kept that way ?

1 Like

If you have two releases each with a Guid they will not change. But if those two releases are merged into only one release that release will have the Guid of one of the original releases, however if you try and access the Guid of the other release that no longer exists it will redirect you to the merged release. This is achieved by having a redirect table mapping defunct Guids to the Guid of the merged release.


ahhh, good one. I never would’ve realised. I’ve just noticed various *_gid_redirect tables in the db schema, I assume those are the tables you are referring to.



The Guids can go away, though, since entities can be deleted. This should only happen with things that were wrong in the first place. If possible entities should be merged, not deleted.