The Google Open Source Programs Office continues to support MetaBrainz in a number of ways and most recently they donated $10,000 in credit toward their cloud services. Thank you Google!
This credit allows us to run some services in the cloud to round out primary hosting setup — this gives us a some redundancy and allows us to not keep all of our critical eggs in one basket. We can also give our open source developers Virtual Machines from time to time, since a lot of our projects are very data heavy. Having access to a fat VM can sometimes turn a really frustrating project that makes your laptop melt into a project that is satisfying to watch chug along.
Thank you again, Google, the Open Source Programs Office and in particular, Cat Allman!
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_SEQUENCE is set to 24 in
- If you’re using the live data feed (your
REPLICATION_TYPE is 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/LoadReplicationChanges and 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 origin followed 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_SEQUENCE to 25 in
lib/DBDefs.pm as 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
React Conversion Task
- [MBS-9925] – Convert collection pages to React
- [MBS-10179] – Convert all entity list components to React
At 17:00 UTC (10am PST, 1pm EST, 19:00CEST) we will start the process of our schema change release. The exact time that we plan to start the change will depend on how long it takes to finish our preparations, but we expect it to be shortly after 17:00UTC.
Once we start the process we will put a banner notification on musicbrainz.org and we will also post updates to the @MusicBrainz twitter account, so follow us there for more details.
After the release is complete, we will post instructions here on how to upgrade your replicated MusicBrainz instances.
The accepted students for Google Summer of Code have just been announced! We’re please to announce that Akhilesh Kumar (BookBrainz), Aidan Lawford-Wickham (AcousticBrainz), Vansika Pareek (ListenBrainz), Anirudh Jain (MusicBrainz), amCap1712 (MusicBrainz) and Shamroy Pellew (CritiqueBrainz) have been accepted on behalf of the MetaBrainz Foundation!
To find out more about the accepted students and what they will be working on, please take a look at the list of accepted projects.
This year was quite challenging to decide which students to accept. We had more good proposals than we could accept — which is quite heartbreaking, since we hate having to turn away good proposals. Still, we have a very good spread of students across our projects and we’re quite excited for Summer of Code this year.
Thanks to everyone who applied, all of our mentors and of course, Google’s Open Source Programs Office for making Summer of Code a reality.