Skip to main content

Simple raw-SQL database schema migration tool.

Project description

Overview

This tool helps you to keep track and evolve your database schema (SQL).

It works like this. Whenever you make changes to the database schema you put them into a “migration” - simply an .sql file with a sequence of SQL statements. Sqlturk keeps track of which migrations have been applied and runs them in a guaranteed order.

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.

  • no magic. I wanted a tool that works in an obvious, easy-to-understand way. Changing database schema can have big consequences so it is important to be able to see what’s going on.

Not convinced? A couple of more sophisticated tools: Django South and sqlalchemy-migrate.

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. Sqlturk uses SQLAlchemy syntax to specify database connection string, see its documentation for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlmigrate-1.0.0.zip (8.7 kB view details)

Uploaded Source

Built Distribution

sqlmigrate-1.0.0.win32.exe (205.1 kB view details)

Uploaded Source

File details

Details for the file sqlmigrate-1.0.0.zip.

File metadata

  • Download URL: sqlmigrate-1.0.0.zip
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for sqlmigrate-1.0.0.zip
Algorithm Hash digest
SHA256 1dcd7c605d35cee21f8ed0bd58a356ef375e3a55a8475d6698332fc3e2f4e710
MD5 059467ed1e5e1bad9a60dbb7d9b00243
BLAKE2b-256 27f8f1918e278a27db7dfe0d273ac6e52a0b849c96d246af1cf0c4d1e0669f23

See more details on using hashes here.

File details

Details for the file sqlmigrate-1.0.0.win32.exe.

File metadata

File hashes

Hashes for sqlmigrate-1.0.0.win32.exe
Algorithm Hash digest
SHA256 dd66edd28411faa0a8647465322478558d0b0a5cb9f9d05aef3e73b21cd9940f
MD5 61f921d2a65ecb2351c0500f15f80b39
BLAKE2b-256 31e778f6aa4eaa6d767d4c6976db6b4059c45348559c720fd6a0cfc2557427a1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page