Hi everyone,
Django Evolution 0.7 is out. This release supports Django 1.4 through 1.6, and brings a lot of new additions and major performance enhancements:
* Database operations are now heavily optimized, minimizing the amount of ALTER TABLE statements that needs to be done when applying several related evolutions at once. There should now be one ALTER TABLE per table, instead of potentially one (or more!) per field mutation.
* Evolutions that result in no-ops are filtered out. For example, applying two evolutions at once, one which adds a field and another which removes it. This occurs within any evolutions being applied together when evolving the database.
* Evolution operations are also merged. For example, adding a column in an evolution and then renaming or changing the column in another will now simply add with the new name or changes. Like above, this applies only to evolutions being applied together.
* Added support for evolving `unique_together` and `index_together` meta properties on a model. If you have unique_together or index_together set for any existing models, you will need to add new baseline evolutions. (You won't have to delete these indexes in the database before applying, as Django Evolution is now smart about index.)
* Improved how Django Evolution works with indexes. If an index is renamed, or a new one is added that matches what an evolution would otherwise create, the evolutions will no longer break. Django Evolution will do the right thing with duplicate indexes and discovering index names.
* It's now easier to work with the codebase and run unit tests across different types of databases.
There's lots more. The release notes are up at:
Christian