This release enables relationship credits for areas and places, contains more URL cleanup & auto-select fixes, and changes the behavior of the artist-merge option to rename credits to only rename those that match the original artist names.
The git tag is
- [MBS-9380] – ReverbNation URLs are not correctly cleaned up
- [MBS-9394] – Upper case CD Baby URLs are blocked as “not allowed or incorrectly formatted”
- [MBS-9446] – PartialDate is missing a TO_JSON method
- [MBS-9455] – “Performance of” attributes not showing if rel is orderable
- [MBS-9471] – Relationship editor breaks if two link attribute types have the same name
- [MBS-9469] – Add autoselect for VIAF for places
- [MBS-9316] – Add Operabase to the otherDBs whitelist
- [MBS-9353] – Do not show collections or user profiles to people not logged in
- [MBS-9019] – Extend relationship credits to places
- [MBS-9303] – Add support for Facebook’s fb.com domain
- [MBS-9334] – Enable URL cleanup for Recochoku artist URLs
- [MBS-9435] – Update Rock.com.ar URL format
- [MBS-9444] – Update the YouTube logo used in the sidebar
- [MBS-9457] – Update the Patreon logo used in the sidebar
- [MBS-9458] – “Rename artist and relationship credits” should only rename matching credits
- [MBS-9459] – Enable relationship credits for Areas
- [MBS-9467] – Add support for fallback Patreon user URLs with numeric ID
We plan to have some brief downtime on Thursday, September 14 at around 15:00 UTC for essential upgrades and maintenance across our servers. Thanks for your understanding!
Edit: Maintenance complete! Let us know if you experience any issues.
We’ve been focusing on finishing up some overdue schema change features (alternative tracklists, for one) and doing various refactorings/making some under-the-hood changes, which is why there hasn’t been a release in a while. But here’s a few small fixes that have accumulated.
The git tag is
- [MBS-9409] – Error merging mediums with and without pregap tracks
- [MBS-9416] – wikidata url format redirect addition
- [MBS-9434] – “stream for free” YouTube URL linked to a release should show as “stream on YouTube” instead of “watch on YouTube”
In order to deter spammers, bios and homepages can no longer be set by limited users (accounts less than 2 weeks old, or with less than 10 accepted edits).
Thanks to ferbncode, Sophist, and yvanzo for their work on the tickets below.
The git tag is
- [MBS-9342] – InitDb.pl fails to import data with DBD::Pg 3.6.0
- [MBS-9372] – Revoking editing/voting editor rights also renders them unable to write edit notes
- [MBS-9392] – JSON-LD schema.org structured data broken
- [MBS-9401] – SQL generation fails for release groups (script/dump-entities-sql.pl)
- [MBS-9403] – position attribute is missing in the json api output for media > track
- [MBS-9355] – Do not allow an editor to set bio/link if the user is limited
- [MBS-9391] – Retry downloading dumps in docker container (for creating and importing dumps)
- [MBS-9323] – Artist web page with long wikipedia entry looks bad
If your replicated slave threw an error trying to apply packet #104949 (showing the message
ERROR: duplicate key value violates unique constraint "artist_alias_idx_primary"), then you can un-break things by doing the following:
- Get the latest code from the
git checkout master && git pull origin master (OR, if you don’t want to update your code, clear the dbmirror_pending tables instead:
echo 'TRUNCATE dbmirror_pending CASCADE; TRUNCATE dbmirror_pendingdata CASCADE;' | ./admin/psql READWRITE)
- Proceed with replication as normal, either via cron, or by running
You can also re-import from dump 20170605-031203 or later, and replicate from there. We’re very sorry for the inconvenience.
The issue here was caused by a bug in our alias merge code that interacted strangely with dbmirror. Since that code went untouched for years, the trigger for this issue must have been extremely rare. I’ve put in place a fix for the merge logic to ensure it doesn’t happen there again, and am investigating dbmirror’s behavior to see why it didn’t sequence the updates correctly.
We’re happy to announce the release of our May 2017 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.
Currently, the only visible change for editors is the ability to add multiple lyrics languages to works. We’ve also modified the schema to support dynamic attributes for entities other than works, but the UI for that won’t be complete for another release or two.
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 rest of the instructions here assume an in-place upgrade.
- Make sure
DB_SCHEMA_SEQUENCE is set to 23 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 #24, but the database is currently at #23.”
- 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-2017-05-15-schema-change.
cpanm --installdeps --notest . (note the dot at the end) to ensure your perl-based dependencies are up to date.
- Downgrade DBD::Pg by running
cpanm TURNSTEP/DBD-Pg-3.5.3.tar.gz (version 3.6.0 breaks things currently).
./upgrade.sh (it may take a while to vacuum at the end).
DB_SCHEMA_SEQUENCE to 24 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
npm install followed by
For those curious, here’s the list of resolved tickets (excluding MBS-8393):
- [MBS-9271] – Prevent usernames from being reused
- [MBS-9273] – Fix the a_ins_edit_note function in older setups to not populate edit_note_recipient for own notes
- [MBS-9274] – Fix the edit_note_idx_post_time_edit index in older setups to handle NULL post_time
- [MBS-5452] – Support multiple lyric language values for works
This release brings feature parity with the pre-NGS edit search, thanks to work by yvanzo.
Note: The “My Vote” search condition has been replaced by “Voter,” with sub-condition “is me.”
The git tag is
- [MBS-2673] – Filter by voter
- [MBS-3362] – Filter out own edits
- [MBS-3665] – Inform users of appropriate formats to use for expired/created/closed time or edit/Id ranges
- [MBS-3914] – Filter edit queue by subscribed editors
- [MBS-5681] – Filter by vote
- [MBS-9088] – Search for editor edits fails
- [MBS-9295] – Allow Baidu Baike URLs using current format