packages feed

dbmigrations-0.1.2: MOO.TXT

moo: the dbmigrations management tool
-------------------------------------

Before using moo, you must set two environment variables:

  DBM_DATABASE_TYPE

    The type of database you'll be managing.  The only supported value
    at present is "postgresql".  This will determine the format of
    DBM_DATABASE.

  DBM_DATABASE

    The database connection string for the database you'll be
    managing.  The connection strings for each supported database type
    are as follows:

    DBM_DATABASE_TYPE=postgresql:

      The format of this value is a PostgreSQL database connection
      string, i.e., that described at:

      http://www.postgresql.org/docs/8.1/static/libpq.html#LIBPQ-CONNECT

    DBM_DATABASE_TYPE=sqlite3:

      The format of this value is a filesystem path to the Sqlite3
      database to be used.

  DBM_MIGRATION_STORE

    The path to the filesystem directory where your migrations will be
    kept.  moo will create new migrations in this directory and use
    the migrations in this directory when updating the database
    schema.  Initially, you'll probably set this to an extant (but
    empty) directory.  moo will not create it for you.

Commands
--------

  new <migration name>: create a new migration with the given name and
    save it in the migration store.  This command will prompt you for
    dependencies on other migrations and ask for confirmation before
    creating the migration in the store.  If you use the --no-ask
    flag, the migration will be created immediately with no
    dependencies.

  apply <migration name>: apply the specified migration (and its
    dependencies) to the database.  This operation will be performed
    in a single transaction which will be rolled back if an error
    occurs.  moo will output updates as each migration is applied.

  revert <migration name>: revert the specified migration (and its
    reverse dependencies -- the migrations which depend on it) from
    the database.  This operation will be performed in a single
    transaction which will be rolled back if an error occurs.  moo
    will output updates as each migration is reverted.

  test <migration name>: once you've created a migration, you might
    find it useful to test the migration to be sure that it is
    syntactically valid; the "test" command will apply the specified
    migration and revert it (if revert SQL is specified in the
    migration).  It will perform both of these operations in a
    transaction and then issue a rollback.

  upgrade: this will apply all migrations in the migration store which
    have not yet been applied to the database.  Each migration will be
    applied with its dependenciees in the correct order.  All of the
    migrations will be applied together in a single transaction.  By
    default, this transaction is committed; if you use the --test
    flag, the transaction will be rolled back, allowing you to test
    the entire upgrade process.

  upgrade-list: this will list the migrations that the "upgrade"
    command would apply if you were to run it.  In other words, this
    will list all migrations which have not yet been applied to the
    database.