This is finch, a simple migration library for Django applications.

Migrations built using finch are "dumb" -- they know very little about the structure of your database, and don't attempt to sit between your code and the Django ORM. Instead, they simply provide a means to execute some code only once against your database, and to track which tasks were completed successfully.

Each migration may define a related Django model class, in which case it will be skipped if that model's table is created with syncdb prior to the migration being run. In addition, you can list any number of other migration classes as dependencies to force a migration to run only after they have been completed.

See the finch.base module docstring for more information, including an example migration.