Brian Luft <brian@lincolnloop.com>
DjangoCon 2011 Portland, OR
A pretty basic execution model. This is what we want.
2 operating principles:
Migration State
Migration state is determined by two factors:
User Interface to South is pretty simple overall and can be fudged.
Predict what will happen
Verify
http://south.aeracode.org/docs/tutorial/part3.html
Always have a recovery strategy.
When feasible, backup your DB before running migration operations
Try with a backup DB
Use an alternate settings
Support for non-native Model fields
South can't make assumptions about how Fields in the wild operate
http://south.aeracode.org/docs/customfields.html
Trying to use Model methods at migration time
Forgetting to use South ORM
MySQL transaction failure
Operations appear to hang
Needing dependencies
Break changes down into finest grained steps possible
Export data if needed to handle multiple steps
...there are many possibilities where the South model could break down, so learn to live with it.
Communication is good
Updating with converted apps
Conflicting migrations
Dealing with 3rd party migrations
Migrations can be disabled
Setting: SOUTH_MIGRATION_MODULES
http://south.aeracode.org/docs/settings.html#south-migration-modules http://lincolnloop.com/blog/2011/jul/18/disabling-south-migrations/
Resetting Migrations
http://lincolnloop.com/blog/2011/jun/20/resetting-your-south-migrations/
Maintaining migration history
Comparison to nashvegas
Andrew Godwin
volunteers
brian@lincolnloop.com