We’re happy to announce the release of our May 2019 schema change today! Thanks to all who were patient during today’s downtime as we released everything to our production servers.
This is a fairly minor release as far as schema changes go, but please do report any issues that you come across, especially any related to genres and collections.
Visible changes with this release are limited to an indication if a specific artist credit is being edited (MBS-5387). Work on some of the changes to collections and genres is quite advanced, and we’re hoping to release some of the new features onto beta already in a week or so from now, while others might take a while longer.
Now, on to the instructions.
Schema Change Upgrade Instructions
Note: Importing the latest data dump is always a valid alternative to running
./upgrade.sh on an existing database, if you’d prefer to also get new data in one go. Just follow the relevant instructions in INSTALL.md. The git tag is v-2019-05-13-schema-change. The rest of the instructions here assume an in-place upgrade.
- Make sure
DB_SCHEMA_SEQUENCEis set to 24 in
- If you’re using the live data feed (your
REPLICATION_TYPEis set to
RT_SLAVE), ensure you’ve replicated up to the most recent replication packet available with the old schema. If you’re not sure, run
./admin/replication/LoadReplicationChangesand see what it tells you; if you’re ready to upgrade, it should say “This replication packet matches schema sequence #25, but the database is currently at #24.”
- Take down the web server running MusicBrainz, if you’re running a web server.
- Turn off cron jobs if you’re automatically updating the database via cron jobs.
- Switch to the new code with
git fetch originfollowed by
git checkout v-2019-05-13-schema-change.
- Install newer dependencies Yarn and NodeJS 8 or later according to install prerequisites.
cpanm --installdeps --notest .(note the dot at the end) to ensure your perl-based dependencies are up to date.
./upgrade.sh(it may take a while to vacuum at the end).
DB_SCHEMA_SEQUENCEto 25 in
lib/DBDefs.pmas instructed by the output of
- Turn cron jobs back on, if applicable.
- Restart the MusicBrainz web server, if applicable. It’s also recommended you restart redis. If you’re accessing your MusicBrainz server in a web browser, run
Here’s the list of resolved tickets:
- [MBS-5387] – ACs being edited aren’t marked as having pending edits on the aliases tab
- [MBS-9365] – event_meta_fk_id was never created as part of any upgrade script
- [MBS-9462] – Standalone databases created before schema 21 are missing some l_event_url triggers
- [MBS-10146] – Regression: ISE on Remove DiscID page
- [MBS-10149] – Swap track titles with artist credits fails to update both fields properly
- [MBS-10150] – Regression: The link to the release group reviews in the release page is broken
- [MBS-9664] – Add database constraints to disallow loop relationship
- [MBS-10044] – Add place area to place lists
Database Schema Change Task
- [MBS-10052] – Add new schema for the event art archive
- [MBS-10173] – Create a genre table in the DB and populate it with existing genres
- [MBS-10174] – Create an addition timestamp in the DB for new collection items
- [MBS-10175] – Create a position integer in the DB for collection items
- [MBS-10176] – Create a comment text field in the DB for collection items
- [MBS-10177] – Create an editor_collection_collaborator table for collaborative collections
- [MBS-10178] – Create a genre_alias table
- [MBS-10181] – Create filesize for cover art and each thumb in the DB
3 thoughts on “MusicBrainz schema change release, 2019-05-13 (with upgrade instructions)”
Congrats for the work, MB rocks!
Any news about a new VM? Or the necessary steps to upgrade an existing VM/Docker?
Generic steps to upgrade an existing VM/Docker are available here: https://github.com/metabrainz/musicbrainz-docker#handling-schema-updates
You should additionally make sure musicbrainz-dockerfile/Dockerfile installs yarn (instead of npm) and nodejs 8.
The next VM/Docker release will include both latest database schema and latest search server/indexer.