Downtime for fall schema change

Our next schema change version will be released on Monday, 17 November, 2014 around Noon PST/3pm EST/20:00 GMT/21:00 CET. We expect that MusicBrainz will be unavailable for 30 – 60 minutes during this time. We will put up the downtime notification on the site and tweet from @musicbrainz right before the release.

Sadly, our backup database server suffered a hardware failure and we ran out of time to get a replicated database setup after the hardware was fixed. This means that we won’t be able to put the site into read-only mode and will require us to take a full-downtime.

It sucks and we’re not happy about it either, but there is only so much we can accomplish with our limited resources. 😦

Sorry for any troubles this may cause you.

2014-11-17 schema change release details

We’re now 60 days away from our fall schema change, so we’re announcing the tickets we intend to implement for the next schema change release:

  • [MBS-1059] – Types of list/collection: This new feature will allow a user to specify what type of list/collection they have.
  • [MBS-5458] – CD Stubs replication: Replicate the CD Stub data as part of our replicated data feed.
  • [MBS-6201] – Add an “event” entity: This is the big feature for this release. This feature allows us to record events like concerts or recordings, both future events and past events!
  • [MBS-7551] – Add folksonomy tag support to all entities without them. This features will allow users to tag any of our entities.
  • [MBS-7638] – CreateIndexes for instruments wrongly looks at label tables: During our last release we created an incorrect index. This fixes this mistake.
  • [MBS-7784] – Support for data tracks in tracklists: This new feature would allow us to properly track Audio-CD data tracks in our tracklists.

Besides the events, there isn’t anything earth shattering in here.

New autumn schema change date: 17 November, 2014

Due to two conflicting summits in (our own and the GSoC Summit) around our usual schema change release date, we’ve decided to move the autumn schema change to 17 November, 2014. This will ensure that our developers are properly rested before attempting a hard task such as a schema change.

We hope this won’t cause too much trouble for everyone downstream.

Server upgrade and schema change, 2014-05-14

Hello again! This fortnight, as we’ve mentioned among the past few posts, is our twice-annual schema change release! This means that we’ve got some big changes, as well as special upgrade instructions.

In the former category, we’ve added support for two new entities: Series and Instruments, each of which is exactly what it sounds like. We’ve also done some various cleanup (tables missing from replication, making some attribute-style tables (e.g., label types) trees, and more properly orderable, removing unuseful sortnames). In non-schema-change fixes, we’ve fixed some merging for Artist Credits, show Area names after Places routinely, and perhaps most excitingly, added smaller versions of the relationship editor for other entities. It’s now possible to add relationships to any entity from most entity edit pages, expanding on our previous addition of URL editing!

As far as upgrading:

  1. Ensure you’ve replicated up to the most recent replication packet available with the old schema. (if you’re not sure, run ./admin/replication/LoadReplicationChanges and see what it tells you).
  2. Take down the web server running MusicBrainz, if you’re running a web server.
  3. Turn off cron jobs if you are automatically updating the database via cron jobs.
  4. Make sure your REPLICATION_TYPE setting is RT_SLAVE
  5. Switch to the new code with git fetch origin followed by git checkout v-2014-05-14-schema-change
  6. Run ./ (or carton exec -Ilib -- ./ if you’re using carton, with older installs).
  7. Set DB_SCHEMA_SEQUENCE to 20 in lib/
  8. Turn cron jobs back on, if needed.
  9. Restart the MusicBrainz web server, if applicable. It’s also recommended you restart memcached.

The git tag for this release, as mentioned above in the instructions, is v-2014-05-14-schema-change.

Full release notes, as usual:


  • [MBS-5978] – Replication feed is missing release_tag
  • [MBS-6709] – “None” is no longer the last Packaging type after adding Book and Cassette Case
  • [MBS-7482] – Artist merge with AC renaming does not merge identical ACs


  • [MBS-2410] – Label types not a tree anymore
  • [MBS-2714] – Add support for Series.
  • [MBS-5897] – Make it possible to see edit JSON in the case of an ISE or poor data display
  • [MBS-6144] – Remove the apparently-unused script_language table
  • [MBS-6602] – Remove sortnames from areas
  • [MBS-6603] – Remove sortnames from labels
  • [MBS-6651] – Make it possible to disable dates for relationship types
  • [MBS-6886] – Display area after place names
  • [MBS-6887] – Model coordinates without nullable latitude and longitude
  • [MBS-7205] – Link types should track assumed cardinality
  • [MBS-7411] – Don’t require disambiguation comments for places from different areas
  • [MBS-7470] – Merging/combining RG types (primary/secondary) is unintuitive

New Feature

  • [MBS-3674] – Make instruments entities
  • [MBS-6234] – Add a relationship editor to artists, labels, recordings, release-groups, places, areas and works


  • [MBS-7441] – Check non-replicated changes to DB that have happened since last schema change

May 14 schema change release time

The schema change release is approaching fast and we’re making good progress taking care of all the tasks that need to be completed. During yesterday’s meeting we agreed on the time to do this release: 14 May 1600UTC (9am PDT, 11am Chicago, 17h BST, 18h CEST, timezone map).

We will start the release process at this time — the exact time when the site will be down will depend on how long it will take us to walk through our pre-release checklist. We will be announcing the exact downtime via Twitter (@musicbrainz) and via a banner on the main MusicBrainz pages.

We expect our downtime to be somewhere between 15-30 minutes.


More details for our 2014-05-15 schema change release

As promised last week, here is a more detailed explanation of what is going to be changing during our May 15th schema change release:

  • [MBS-5978] – Replication feed is missing release_tag: This will not change any database tables but will finally include release_tag data in our Live Data Feed.
  • [MBS-6709] – "None" is no longer the last Packaging type after adding Book and Cassette Case: See below for more details.
  • [MBS-2410] – Label types not a tree anymore: This bug and MBS-6709 add “parent”, “child_order” and “description” columns to all of the yellow tables on this diagram except for language, script and script_language.
  • [MBS-2714] – Add support for Series: Details are provided in the ticket itself.
  • [MBS-6144] – Remove the apparently-unused script_language table: Exactly what it says on the tin.
  • [MBS-6602] – Remove sortnames from areas: Removes the sortname column from the area table.
  • [MBS-6603] – Remove sortnames from labels: Removes the sortname column from the label table.
  • [MBS-6651] – Make it possible to disable dates for relationship types: Adds a “has_dates” boolean column to link_type, to indicate whether a particular relationship type allows dates or not. The upgrade will set them all to “can have dates” for now and we will manually disable the appropriate ones later.
  • [MBS-7205] – Link types should track assumed cardinality: Details are provided in the ticket itself.
  • [MBS-3674] – Make instruments entities: This adds the following tables: instrument, instrument_type, instrument_gid_redirect, instrument_alias, instrument_alias_type, instrument_annotation, edit_instrument, l_*_instrument, l_instrument_* (the usual AR tables to other entities).

Next schema change release: May 15, 2014

As per our twice a year schedule of making schema changes that impact our Live Data Feed users, I’d like to announce the set of tickets that we’re going to implement for the next release.

We have quite a few clean-up tickets in this batch and a handful of improvements — some of the improvements are a lot of work, but won’t seem that way on the surface. However, the one major new feature we’re going to add are Series. Series will allow us to mark a set of releases as belonging to a series (e.g. Now this is what I call crappy music!). This has been a long long requested feature and we’re finally at a point where we can implement this.

The good news about this release is that a large number of the tickets are already implemented! The big tickets are still in progress, but the smaller ones are already in review. We’re hoping that we’ll have a less hasty push to the finish line this year with lots of time for testing. And we’re hoping for ponies too! 🙂

2013-10-14 schema change release update instructions

As promised, here are the instructions for updating any instances of MusicBrainz you might have. You will need to perform these steps to upgrade to the new version:

  1. Take down the web server running MusicBrainz, if you’re running a web server.
  2. Turn off cron jobs if you are automatically updating the database via cron jobs.
  3. Make sure your REPLICATION_TYPE setting is RT_SLAVE
  4. Switch to the new code with git fetch origin followed by git checkout v-2013-10-14
  5. Run carton exec -Ilib — ./ (or simply ./ if you aren’t using carton, such as for VM users or fairly new installs).
  6. Set DB_SCHEMA_SEQUENCE to 19 in lib/
  7. Turn cron jobs back on, if needed.
  8. Restart the MusicBrainz web server, if needed.

If your server fails to start or cron is having issues, it may be a missing perl module problem. To check for any missing perl modules, follow the instructions in

October 14 schema change complete

We’ve just finished rolling out the fall schema change release. Apart from the /place/create endpoint failing, the site is back up in full read-write mode now.

Read on for the changes in this release — our next blog post will give instructions on how to upgrade your instances of MusicBrainz.

Thanks to everyone who worked on this release!


  • [MBS-2301] – Attach TOC to new release – TOC/DiscId is lost when based on existing release/tracklist
  • [MBS-4453] – Duplicate artist credits
  • [MBS-5624] – Release groups don’t show the yellow removal warning when empty
  • [MBS-5647] – Release header of a different release appears on the release duplicates tab of the release editor
  • [MBS-6067] – Internal server error when using query parameter with a lookup in the webservice
  • [MBS-6211] – Aliases are missing the “ended” flag
  • [MBS-6373] – Area names being incorrectly translated
  • [MBS-6518] – Wikidocs pages keep 404ing
  • [MBS-6703] – Type displays as (none) on remove cover art edits.
  • [MBS-6715] – Internal server error looking up non-existing ISWC
  • [MBS-6717] – Some false reports of possible Artist collaborations
  • [MBS-6736] – ISE when giving a non-integer to entity/mbid/annotation/
  • [MBS-6748] – Internal server error loading some edit relationship edits
  • [MBS-6765] – Documentation search doesn’t work over https in recent Firefox/Chrome
  • [MBS-6782] – Artist overview page still displaying release date that was removed
  • [MBS-6787] – edit search merge works edits : ISWC are duplicated


  • [MBS-631] – Add support for deprecating a relationship
  • [MBS-6068] – Remove the _name tables
  • [MBS-6069] – Track MBID webservice changes
  • [MBS-6182] – Deleted editors should be marked in a real way, not just designated by lack of password/well-known username
  • [MBS-6392] – Display ISNIs with spaces
  • [MBS-6543] – Highlight specified edit note when using edit note fragment in URL
  • [MBS-6564] – Add disambiguation comments to areas
  • [MBS-6706] – Improve the relationship type documentation display
  • [MBS-6713] – Ensure IMDB links are added at the right level
  • [MBS-6767] – Remove the Creative Commons download relationships report
  • [MBS-6779] – doesn’t mention that you need to apt-get install cpanminus before trying to run cpanm.

New Feature

  • [MBS-5701] – Add a way to mark recordings as containing video
  • [MBS-6200] – Add a “place” entity
  • [MBS-6683] – Add autoselect for ReverbNation URLs


  • [MBS-6046] – Remove PUID support
  • [MBS-6669] – Update the Allmusic logo used in the sidebar
  • [MBS-6732] – Add to score whitelist
  • [MBS-6766] – Delete unused root/release/

You can check out this release with the following tag: v-2013-10-14 .