================================== 20140327 (Thursday, 27 March 2014) ================================== The `Migrator` class - inheritance for Migrations ------------------------------------------------- The migration which I used yesterday in Chatelet to migrate the production server was only for the "Chatelet" variant of Lino Welfare. That is, for a Lino Welfare which uses the "alternate" implementation of the `courses` app. This was enough to run the upgrade in Chatelet, which was my most urgent goal. But I must not leave it as this since in an "Eupen" variant they don't want to convert their `courses` tables. Now I replaced :setting:`migration_module` by :setting:`migration_class`. This allows us to define "Migrators" as classes who inherit from each other. Technically I could have the Site class themself, but it looks more clean when migration code is in a single module (or package), but not together with settings. Usage example: module :mod:`lino_welfare.settings.chatelet.migrate`. Note: yes, Django 1.7 will have its own migrations, basically inspired by South. That might look as a clear reason to abandon `north` and start using Django migrations. Note that if you don't like `north`, you can simply use South or Django 1.7 migrations. But: - There is no immediate need for me to learn. I'll wait at least until Django 1.7 is released. - There are certain Lino magics for which I don't yet see how I'd do them using South. Examples: - migrating from one language distribution to another - injected fields and interdependent apps Welfare Uploads ---------------