Today we released a schema change update for MusicBrainz. Schema change updates change the format of the underlying MusicBrainz database and allow us to store more information, or model information in a richer/more correct form.
Summary
This release specifically includes some exciting new features:
Areas
A new entity is this release is the “area” entity, which can track countries, subdivisions of countries, cities, and other such location entities (venues, however, will be another entity). While this release primarily only introduces the entity, migrating only our existing list of countries, it’s now also possible to add start and end locations to artists, and to mark works as anthems. Editing of areas, their aliases and annotations, and area-area and area-url relationships, is limited to a new class of “Location Editor”.
ISNI Codes
The International Standard Name Identifier (ISNI) is an ISO standard that identifies public identities of parties. We now have support for storing ISNI codes inside the MusicBrainz database, which will make it easier to cross-reference data in MusicBrainz with other databases.
Multiple Release Events
Releases can now have multiple date and country pairs, whereas previously they could only have one country and one date. This will allow us to more accurately store information about releases that occur in different areas at different dates, but are otherwise the same physical product.
Forthcoming Features
We also began work on the database support for some future MusicBrainz features:
Track MBIDs
All tracks on mediums now have unique identifiers. This will allow people to refer to a specific track in a release in a way that is more resilient to editing than just the track name or position. Currently we have database support for this, but track identifiers are not yet exposed in either the website or the web service.
Dynamic Work Attributes
Dynamic work attributes will let us introduce new attributes to describe works without schema changes
Free Text Relationship Attribute Credits
This feature will let editors specify an alternative name for relationship attributes to specifically exactly which model guitar was used in a recording, rather than the current vague “electric guitar” attribute. Support for this feature is now in the database (in the link_attribute_credit
) table, but the UI to do this editing is still to be finished.
Support more formats in the Cover Art Archive
Uploading cover art to the cover art archive will soon support a few other image formats, starting with PNG.
Other Schema Changes
The remaining smaller schema changes are:
- The wiki transclusion version mapping is now stored in the database, not a flat file.
- The
link_type.short_link_phrase
was renamed to link_type.long_link_phrase
.
- The
work.artist_credit
column was dropped.
- Collections can now have a description.
Upgrading
If you are currently running a slave database, then you will need to perform a few manual steps to upgrade to the new version:
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.
Make sure your REPLICATION_TYPE setting is RT_SLAVE
Switch to the new code with git fetch origin
followed by git checkout
v-2013-05-15
Run carton install --deployment
to install any new perl modules.
Run carton exec -Ilib -- ./upgrade.sh
from the top of the source directory.
Set DB_SCHEMA_SEQUENCE to 17 in lib/DBDefs.pm
Turn cron jobs back on, if needed.
Restart the MusicBrainz web server, if needed.
Please see the instructions in our more recent blog post instead of these instructions.
Release Notes
This release wouldn’t have possible without help from Alastair Porter, Michael Wiencek, Nicolás Tamargo or the rest of the MusicBrainz team – thank you all for your hard work! As we missed the previous release, there are a few other changes in this release. Here are the full release notes:
Bug
- [MBS-4703] – Add Medium edit does not correctly display the auto-edit note
- [MBS-5834] – Users’ votes page mistitled as “edits”
- [MBS-5851] – Instruments are missing from the JSON webservice responses
- [MBS-5979] – Automatic redirect to beta clear release editor seeding
- [MBS-6015] – Edit Artist Credit edits affecting track ACs don’t appear in related release edit histories
- [MBS-6129] – Relationship editor isn’t correctly parsing attributes
- [MBS-6149] – Entity merges silently dropping aliases with locales
- [MBS-6178] – URL page headers are completely inconsistent
- [MBS-6196] – work/edit_form.tt includes artist credit docs
- [MBS-6249] – Add Event button broken on add release with cdtoc
Improvement
- [MBS-1346] – New Report: Artists with 0 subscribers
- [MBS-2229] – Allow multiple release events per release
- [MBS-3626] – Display license logos in the sidebar
- [MBS-3669] – Merge dated and undated relationships
- [MBS-4115] – Cover art archive: Support .png SQL changes
- [MBS-4294] – Add a “description” field to collections (SQL/UI)
- [MBS-4756] – Move the wiki transclusion index to the database
- [MBS-4866] – URL autoselect: ameblo.jp -> has blog at
- [MBS-4867] – Timeline graph rate-of-change graph should change its vertical scaling depending on where it’s zoomed
- [MBS-4925] – Add country of birth and country of death to Artist (person)
- [MBS-5528] – Change short_link_phrase to long_link_phrase
- [MBS-5772] – Generate relationship documentation (semi-)automatically
- [MBS-5848] – Instrument credits (SQL)
- [MBS-6023] – Track MBID UI changes
- [MBS-6141] – Add discography page URL matching for universal-music.co.jp, lantis.jp, jvcmusic.co.jp, wmg.jp, avexnet.jp and kingrecords.co.jp
- [MBS-6142] – Prevent Wikipedia links from being added as discography page relationships
- [MBS-6188] – Remove rating from work merge page
- [MBS-6189] – Show work languages on ISWC page
- [MBS-6190] – Artist credit diffs per word, join phrase per char
New Feature
- [MBS-799] – Location, venue and event support
- [MBS-1839] – Track MBID SQL changes
- [MBS-2417] – Support multiple countries/regions on a single release
- [MBS-3296] – Add dynamic attributes
- [MBS-3985] – Support multiple artist countries
- [MBS-5272] – Create daily and weekly “rollup” replication packets
- [MBS-5302] – Store International Standard Name Identifier (ISNI, ISO 27729) for artists and labels
- [MBS-5861] – Dynamic work attributes (SQL)
Task
- [MBS-5314] – Drop the work.artist_credit column
- [MBS-6133] – Ensure JPEG uploads still work through CAA
- [MBS-6167] – Add iTunes links to the sidebar
- [MBS-6170] – Add Bandcamp links to the sidebar
Sub-task
- [MBS-4217] – Spotify relationship under the External links section
- [MBS-5809] – SQL changes for MBS-4294: Add a “description” field to collections
- [MBS-5917] – transclusion to DB: SQL
- [MBS-5918] – transclusion to DB: UI
- [MBS-5919] – locations: SQL
- [MBS-5920] – locations: UI
- [MBS-5929] – Schema changes to store relationship type guidelines and example usages in the database
- [MBS-5930] – Generate documentation automatically/allow managing guidelines in DB
- [MBS-5933] – Schema changes to support multiple (date, country) pairs on releases
- [MBS-6187] – UI changes to support multiple country/date pairs on releases