|Version 6 (modified by andrew, 5 years ago) (diff)|
RELEASE NOTES STILL IN PROGRESS. ANYTHING HERE MAY BE INNACURATE, WRONG, OR COMPOSED OF PURE EVIL
This is a major new release of South. A lot of work has been done to the internals, and a few annoying remnants from South's history have finally been eradicated.
Backwards incompatible changes
- Tests now run with migrations by default, not using syncdb for everything as in 0.6. This is the behaviour most people expect; to turn it off again, set SOUTH_TESTS_MIGRATE to False (migrating everything can be slow).
- The entire migration/dependency engine has been refactored (mostly by Simon Law), and will now be a lot easier to maintain, as well as being nice and quick.
- The startmigration command (which used to be one massive file) has been removed, and refactored into several new commands:
- schemamigration, which is very similar to the old startmigration
- datamigration, which should be used to create new data migrations
- Migrations files no longer import from appname.models.
- Migration classes should now inherit from south.v2.SchemaMigration or south.v2.DataMigration. This doesn't do much at the moment, but is designed so we can easily change the migration API in future and keep backwards compatability.
- Custom fields are no longer parsed if they don't introspect; instead, an error is raised every time. This is because parsing was causing scenarios where migrations sometimes worked; the new solution means they'll always work or fail.
- You can now set custom migration directories (actually done as Python modules) if you need per-project migrations for an app.
This release wouldn't have been possible without:
- Simon Law, who wrote most of the migration refactor and now knows too much about how our dependencies work
- Torchbox, who sponsored Andrew's work on the startmigration refactor, the rest of the migration refactor, and a lot of other small things.