Migrationshintergrund

Ich bitte um Entschuldigung, falls die Überschrift Sie in die Irre geführt haben sollte – es geht natürlich um Datenbankmigration mit Django, und nicht um fiebrige politische Diskurse.

Django jedenfalls verhält sich schon bei kleineren Anpassungen wenig kooperativ:

syncdb will only create tables for models which have not yet been installed. It will never issue ALTER TABLE statements to match changes made to a model class after installation. Changes to model classes and database schemas often involve some form of ambiguity and, in those cases, Django would have to guess at the correct changes to make. There is a risk that critical data would be lost in the process.

If you have made changes to a model and wish to alter the database tables to match, use the sql command to display the new SQL structure and compare that to your existing table schema to work out the changes.

Es gibt zwar speicherplatzfressende Schleichwege und Hilfsmittel, aber nichtsdestotrotz lässt mich Djangos Konservatismus (erneute Entschuldigung bei politisch interessierten und von Google fehlgeleiteten Besuchern) vor einer Migration von MySQL auf das nagelneue PostgreSQL 9.0 zurückschrecken. Vielleicht probiere ich es zum Warmwerden zunächst mit einem Umstieg von MyISAM auf InnoDB.