Database schema migration tool
Project description
Design
There are plenty of tools to approach the problem of database schema migration. Here is how sqlturk is different:
one-way migrations. There is no way to “rollback” a migration. In my experience, “downgrade” scripts are almost never used yet writing them adds considerable burden onto the developer. Their presense may add a false sense of security – since they used so rarely there is a big chance they will not work properly anyway.
Python-agnostic. Sqlturk operates in terms of SQL DDL. It does not work in terms of SQLAlchemy ORM models or Django’s and thus it can be used in a much wider context. Plain SQL also means that a competent DBA who knows nothing about Python can author these scripts. Or they could be generated automatically by another tool.
API usage
Short example:
>>> from sqlturk.migration import MigrationTool >>> tool = MigrationTool('sqlite:///:memory:', migration_dir='testmigrations') >>> tool.install() # create a database table to track schema changes >>> tool.find_migrations() ['1_foobar', '2_foobar_data', '10_foobar_delete'] >>> tool.run_migrations() >>> tool.find_migrations() # check that all migrations have been applied []
Example migration scripts can be found in the sqlturk’ source.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.