Metadata-Version: 1.0
Name: db-migrator
Version: 0.0.6
Summary: Python package to migrate postgresql database
Home-page: https://github.com/karenc/db-migrator
Author: Connexions
Author-email: info@cnx.org
License: AGPL, see also LICENSE.txt
Description: DB Migrator
        ===========
        
        generate
        --------
        
        Example usage::
        
            dbmigrator generate add_id_to_users
        
        generates a file called ``migrations/20151217170514_add_id_to_users.py``
        with content::
        
            def up(cursor):
                # TODO migration code
                pass
        
            def down(cursor):
                # TODO rollback code
                pass
        
        
        To set the migrations directory using an entry point, in mymodule ``setup.py``::
        
            setup(
                ...
                entry_points={
                    'dbmigrator': [
                        'migrations_directory = mymodule.main:migrations_directory',
                        ],
                    },
                )
        
        **Important note**: For the settings from ``setup.py`` to be picked up, before
        running ``dbmigrator``, first run ``python setup.py develop`` or
        ``python setup.py install``.
        
        Then in ``mymodule/main.py``::
        
            import os
        
            migrations_directory = '{}/sql/migrations'.format(
                os.path.abspath(os.path.dirname(__file__)))
        
        or::
        
            import os
        
            def migrations_directory():
                return '{}/sql/migrations'.format(
                    os.path.abspath(os.path.dirname(__file__)))
        
        
        init
        ----
        
        Example usage::
        
            dbmigrator --db-connection-string='postgres://dbuser@localhost/dbname' init
        
        or with a config file, ``development.ini``, that looks like this::
        
            [app:main]
            db-connection-string = postgres://dbuser@localhost/dbname
        
        Run the command::
        
            dbmigrator --config=development.ini init
        
        
        list
        ----
        
        Example usage::
        
            $ dbmigrator list
            name                      | is applied | date applied
            ----------------------------------------------------------------------
            20151217170514_add_id_to_   True         2016-01-31 00:15:01.692570+01:00
            20151218145832_add_karen_   False               
            20160107200351_blah         False               
        
        
        migrate
        -------
        
        Example usage:
        
        With two migrations in the migrations directory,
        
        ``migrations/20151217170514_add_id_to_users.py``::
        
            def up(cursor):
                # TODO migration code
                pass
        
            def down(cursor):
                # TODO rollback code
                pass
        
        and
        
        ``migrations/20151218145832_add_karen_to_users.py``::
        
            def up(cursor):
                cursor.execute('ALTER TABLE users ADD COLUMN karen TEXT')
        
            def down(cursor):
                cursor.execute('ALTER TABLE users DROP COLUMN karen')
        
        To run the migrations::
        
            $ dbmigrator migrate
            Running migration 20151217170514 add_id_to_users
        
            Running migration 20151218145832 add_karen_to_users
            ---
            +++
            @@ -4005,21 +4005,22 @@
                 first_name text,
                 firstname text,
                 last_name text,
                 surname text,
                 full_name text,
                 fullname text,
                 suffix text,
                 title text,
                 email text,
                 website text,
            -    is_moderated boolean
            +    is_moderated boolean,
            +    karen text
             );
        
             ALTER TABLE public.users OWNER TO rhaptos;
        
             --
             -- Name: abstractid; Type: DEFAULT; Schema: public; Owner: rhaptos
             --
        
             ALTER TABLE ONLY abstracts ALTER COLUMN abstractid SET DEFAULT nextval('abstracts_abstractid_seq'::regclass);
        
        or to run migrations up to a specific version::
        
            $ dbmigrator migrate version=20151217170514
            Running migration 20151217170514 add_id_to_users
        
        if all migrations have already been run::
        
            $ dbmigrator migrate
            No pending migrations.  Database is up to date.
        
        rollback
        --------
        
        Example usage:
        
        With two migrations in the migrations directory,
        
        ``migrations/20151217170514_add_id_to_users.py``::
        
            def up(cursor):
                # TODO migration code
                pass
        
            def down(cursor):
                # TODO rollback code
                pass
        
        and
        
        ``migrations/20151218145832_add_karen_to_users.py``::
        
            def up(cursor):
                cursor.execute('ALTER TABLE users ADD COLUMN karen TEXT')
        
            def down(cursor):
                cursor.execute('ALTER TABLE users DROP COLUMN karen')
        
        Make sure the database is up to date::
        
            $ dbmigrator migrate
            No pending migrations.  Database is up to date.
        
        Now rollback the last migration::
        
            $ dbmigrator rollback
            Rolling back migration 20151218145832 add_karen_to_users
            ---
            +++
            @@ -4005,22 +4005,21 @@
                 first_name text,
                 firstname text,
                 last_name text,
                 surname text,
                 full_name text,
                 fullname text,
                 suffix text,
                 title text,
                 email text,
                 website text,
            -    is_moderated boolean,
            -    karen text
            +    is_moderated boolean
             );
        
             ALTER TABLE public.users OWNER TO rhaptos;
        
             --
             -- Name: abstractid; Type: DEFAULT; Schema: public; Owner: rhaptos
             --
        
             ALTER TABLE ONLY abstracts ALTER COLUMN abstractid SET DEFAULT nextval('abstracts_abstractid_seq'::regclass);
        
        To rollback the last 2 migrations::
        
            $ dbmigrator rollback --steps=2
            Rolling back migration 20151218145832 add_karen_to_users
            ---
            +++
            @@ -4005,22 +4005,21 @@
                 first_name text,
                 firstname text,
                 last_name text,
                 surname text,
                 full_name text,
                 fullname text,
                 suffix text,
                 title text,
                 email text,
                 website text,
            -    is_moderated boolean,
            -    karen text
            +    is_moderated boolean
             );
        
             ALTER TABLE public.users OWNER TO rhaptos;
        
             --
             -- Name: abstractid; Type: DEFAULT; Schema: public; Owner: rhaptos
             --
        
             ALTER TABLE ONLY abstracts ALTER COLUMN abstractid SET DEFAULT nextval('abstracts_abstractid_seq'::regclass);
        
            Rolling back migration 20151217170514 add_id_to_users
        
        
        ~~~~
        
        CHANGELOG
        ---------
        
        0.0.6 (2016-02-08)
        ------------------
        
         - Fix missing migrations directory the "init" command
        
        0.0.5 (2016-02-08)
        ------------------
        
         - Include CHANGELOG in distribution's manifest
        
        0.0.4 (2016-02-08)
        ------------------
        
         - Show warning message instead of error if migrations directory is undefined
         - Add CHANGELOG
        
        0.0.3 (2016-02-08)
        ------------------
        
         - Return error if migrations directory is undefined
        
        0.0.2 (2016-02-03)
        ------------------
        
         - Fix invalid rst in README
         - Update setup.py description and long_description
         - Update setup.py to include README as the description and fix url
         - Update README and cli after removing default value for config file
         - Remove default config path (development.ini)
         - Add dbmigrator list command
         - Fix dbmigrator rollback to stop if there are no migrations to rollback
         - Print message after initializing schema migrations
         - Add note to run ``python setup.py install`` if using entry points
         - Add migrations directory setting from setup.py entry point in README
         - Update command names for init and generate in README
         - Get settings from setup.py entry points
         - Remove __init__.py generation in migrations directory
         - Add option version to dbmigrator init for setting the initial version
         - Rename "generate_migration" command to "generate"
         - Rename "init_schema_migrations" command to "init"
         - Change the way migrations are imported so it works in python2
         - Add "applied" timestamp to schema migrations table
         - Add ``# -*- coding: utf-8 -*-`` to the top of generated migration files
         - Add README
         - Add command "rollback" to rollback migrations
         - Add command "migrate" to run pending migrations
         - Add migrations to table when running init_schema_migrations
         - Add command for creating the schema migrations table
         - Create dbmigrator cli and "generate_migration" command
         - Create dbmigrator python package
        
        
Platform: UNKNOWN
