Nearly one year after we released NGS, we have another schema change update with lots of new features!
This release contains 9 new features and improvements that take advantage of the new schema. These are:
- More social user profiles which can now have Gravatars, languages (and the users proficiency) age and country.
- More expressive aliases for artists, labels and works. Aliases can now have types, sort names and multiple aliases may be used per a locale, along with the ability to mark one alias as ‘primary’ for that locale.
- Release group types have been separated into primary and secondary types. A release group now has 1 primary type and may have multiple secondary types. This allows us to have ‘remix compilation albums’, for example
- Works may have multiple ISWCs
- Artists, labels and relationships may be marked as ‘ended’ to indicate that they have ended, but the exact date is not known
- Vinyl style/free text track numbers are now supported.
- Works may have a lyrics language associated with them
- Artists and labels may have multiple IPIs
- We have moved to use ISO 639-3 for our language table. While not all languages are exposed at the moment, this gives us a lot more flexibility going forward.
Many thanks to nikki for going way beyond our expectations for testing (and patience!); to Ian McEwen for his continued work on statistics; and to the MusicBrainz team for making this all happen.
If you have a replicated instance of MusicBrainz, please follow these instructions to get your server running on the new schema:
- 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 bygit checkout v-2012-05-15-schema-change
- Run
carton install --deployment
. If you have not switched your installation to using carton, please read INSTALL.md on how to do this. - Run
carton exec -- ./upgrade.sh
from the top of the source directory. - Set DB_SCHEMA_SEQUENCE to 15 in lib/DBDefs.pm
- Turn cron jobs back on, if needed.
- Restart the MusicBrainz web server, if needed.
If you are running a mbslave mirror, check out the latest code and read the upgrade instructions in the README file.
Bug
- [MBS-3189] – Remove unused ref_count column and related functions
- [MBS-4616] – Add work language statistics
- [MBS-4629] – /cover-art page shows no collections
- [MBS-4637] – Timeline graph won’t graph anything without an entry in statistics/view.js
- [MBS-4640] – Clicking cover art opens box with “����” (4 U+FFFD)
- [MBS-4642] – Thickbox CSS interferes with MB CSS
- [MBS-4647] – Cover art page allows submitting edit with no cover art when JS is off
- [MBS-4648] – Changing cover art type from “other” to unset causes Internal Server Error
- [MBS-4678] – upgrade.sh is not ready for testing
- [MBS-4679] – Internal server error adding secondary types to a release
Improvement
- [MBS-1485] – Alias types
- [MBS-1798] – Lyrics language for works
- [MBS-1799] – Add ISO 639-3 language codes to the database
- [MBS-1981] – Add blog feed to the home page
- [MBS-2240] – Aliases: certain locale can be used only once in the list of aliases
- [MBS-2532] – Allow more than one IPI per artist
- [MBS-2851] – Timeline graph events should be in the database
- [MBS-2885] – Allow more than one ISWC per work
- [MBS-3646] – Split release group attributes into two types
- [MBS-3788] – Alias improvements
- [MBS-4625] – Improve wording of cover art tab when cover art comes from relationships
- [MBS-4676] – Do not allow people entering deprecated relationships
Regarding step #5: “Run carton install –deployment. If you have not switched your installation to using carton, please read INSTALL.md on how to do this.”
How is this different (if at all) for those of us who are running the MB website via nginx?
Miky: It shouldn’t affect nginx at all. This is just a different way of running the server, but it still needs the same perl modules.
Thanks @mayhem. I was under the impression that Carton was a replacement web server for the previous development web server but after reading your comment and reading through the updated INSTALL.md it seems that Carton is a Perl package manager that can be used instead of invoking Perl directly to install dependencies or to start the development server. Correct?
If that’s the case then I suppose all I have to do is install Carton via CPAN and then use it to make sure all Perl modules are up-to-date. Then use Carton again to run the upgrade script and finally just restart nginx..
Miky: Correct and Yes!
how do you update the musicbrainz VM server then? there is no GIT installed on that VM of musicbrainz.
peppi: If you have a recent VM it should have git installed. If for some reason it does not, install it using:
sudo apt-get install git-core
The sudo password is “musicbrainz”.
ok found it. but now it is saying error: Your local changes to the following files would be overwritten by checkout:
carton.lock
Please, commit your changes or stash them before you can switch branches.
Aborting
when i want to do git checkout v-2012-05-15-schema-change. sorry for all the questions 🙂
peppi: It’s probably better if you come ask on our devel IRC channel: http://musicbrainz.org/doc/Communication/IRC – that way you should be able to get kinda-real-time help 🙂
Sorry I first overlooked this post thinking it was some Oracle geek stuff the title (schema change) and the current comments gave me this impression.
But it’s in fact also a GUI change and a STYLE change that all kinds of funky release types get merged with regular albums.
I found a serious bug that album “feature” should require a fast revert.
David Bowie, for instance, now has 140 albums (including pirates, bootlegs, live, compilations, unknown, etc.) instead of his 24 well known albums.
Don’t try to find those 24 albums in MB now, unlike any other music website any more, they are now lost in the junk flood of hundreds non albums.
But I’m sure this will be revert to normal and that this time a proper RFC or forum discussion will be done if any changes are really requested/needed if someone really needs that all stuff (except mini albums -sic-) get merged with albums. 😉