Metadata-Version: 1.1
Name: sqlmigrate
Version: 1.0.0
Summary: Database schema migration tool that works in SQL
Home-page: https://bitbucket.org/msm2e4d534d/sqlmigrate
Author: Max Ischenko
Author-email: ischenko@gmail.com
License: Apache License, Version 2.0
Description: sqlturk
        =======
        
        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 <http://south.aeracode.org/wiki/Documentation>`_ and `sqlalchemy-migrate <http://code.google.com/p/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 <http://bitbucket.org/max/sqlturk/src/tip/testmigrations/>`_. Sqlturk uses SQLAlchemy syntax to specify database connection string, see its `documentation <http://www.sqlalchemy.org/docs/05/dbengine.html#create-engine-url-arguments>`_ for details.
        
        .. vim:set ft=rst tw=0:
Keywords: sql database schema migration evolution migrate sqlalchemy
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development
