Starting with this release, PostgreSQL 9.5 is now our minimum supported version. In order to import any future data sets, you will need to upgrade your installation to version 9.5.
Due to unforeseen problems with the Live Data Feed (AKA replication), users with slave databases will be required to first import a fresh data dump into their new 9.5 installation. We apologize that this is the case, but even had this stream not been broken, doing a clean import is faster and easier than doing the migration. For details on what happened during this rather lengthy schema change release, stay tuned for a post mortem blog post that covers the details.
If you have a non-replicated standalone database, you can use pg_upgrade and run ./upgrade.sh directly, but for simplicity we strongly recommend importing the latest data dump. Thus, we will only provide instructions for a clean import:
- Make sure you have PostgreSQL 9.5 installed, and your database settings in lib/DBDefs.pm are updated to point to the 9.5 installation if you currently have an older version of postgres running. If you already have postgres 9.5 and want to replace the existing database there, you’ll need to drop it first (using dropdb or from within psql). Be careful that you’re not dropping any important data if this is a standalone database that you’ve made changes to.
- Take down the web server running MusicBrainz, if you’re running a web server.
- Turn off cron jobs if you are automatically updating the database via cron jobs.
- Switch to the new code with
git fetch originfollowed by
git checkout v-2016-05-23-schema-change-v2
cpanm --installdeps --notest .to ensure your perl-based dependencies are up to date. Note the dot at the end.
DB_SCHEMA_SEQUENCEto 23 in
- Download the latest data dumps. If you don’t need historical edit data, excluding the edit dump will speed up your import significantly.
- Initialize a new database from the data dumps downloaded in step 7. Detailed instructions for doing this are located in INSTALL.md in the musicbrainz-server repository; if your data dumps are in /tmp, the command should simply be something like
./admin/InitDb.pl --createdb --import /tmp/mbdump*.tar.bz2.
- After the import has finished, turn cron jobs back on, if applicable.
- Restart the MusicBrainz web server, as well as memcached, if applicable.
We would like to thank bitmap, Gentlecat, zas, chirlu, reosarevok, gcilou for contributing directly to the release and we’d also like to thank all of the people who helped test, debug or otherwise offer support in this quite difficult release. Thank you!
And finally, here’s the list of changes you can expect in the upgrade:
- [MBS-6406] – Admins can’t change email addresses
- [MBS-8288] – Missing indexes for inverse lookup on *_gid_redirect tables
- [MBS-8669] – Primary key for place table missing on old slaves
- [MBS-8906] – Release pages ISE if CB doesn’t return JSON from its API for whatever reason
- [MBS-8928] – If you submit the release editor without being logged in, it displays “[object Object]” as an error mesage
- [MBS-8943] – Some pages do not respect DB_READ_ONLY setting
- [MBS-1873] – Fix vote tallies for edits
- [MBS-3887] – Duplicate artist and label names not being checked against alias
- [MBS-8287] – Log deleted entities that were in a subscribed collection
- [MBS-8433] – Work attributes don’t have a uuid
- [MBS-8716] – Store the edit data in a JSONB column
- [MBS-8717] – Move the edit data to a separate table
- [MBS-8838] – Add gids to all *_type* tables
- [MBS-8873] – Convert and unify artist credit editors to React
- [MBS-8909] – Add logos to IMDb and VGMdb links in the sidebar
- [MBS-8939] – Update the Instagram logo used in the sidebar
- [MBS-8940] – Let banner message editors dismiss the banner only temporarily
- [MBS-8656] – Bring edit table indexes back into sync
- [MBS-8719] – Stop materializing of edit and vote counts
- [MBS-8720] – Add a materialized view of edit note recipients
- [MBS-8727] – Prevent duplicate votes
- [MBS-8800] – Create the earthdistance extension and add a geodetic index for place coordinates
- [MBS-8804] – Add BRIN indexes for timestamp columns
- [MBS-8897] – add new entity icons
- [MBS-8938] – Schema changes to support alternative tracklists