This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

generic migration provider

Project Description

Trek is a simple tool to do migrations of whatever you’d like. It has terrible documentation because it’s pre-1.0.

Usage

Install! pip install trek

Now say you have a directory of migrations:

migrations
├── 1.sql
├── 2.sql
└── 3.sql

Where each of these looks a bit like this:

-- MIGRATE UP
CREATE TABLE test (
    id INTEGER PRIMARY KEY
);

-- MIGRATE DOWN
DROP TABLE test;

(using any comment character, but lines with MIGRATE UP and MIGRATE DOWN will be excluded and only one of each line is expected. Also note that to simplify this example the numbers have been used, but you should probably use timestamps like 2014-01-01T00-00-00_human_name.sql)

You can then run:

trek --runner=postgres up postgres://trek_test@localhost/trek_test

And the migrations will be run for you. Magic!

Writing your own runner

A runner is just a Python object with version, up, and down methods. version will be called with no arguments to determine the current version, while up and down will be called with a name (string) and Migration object (which has string up and down members). up and down should be generators, and you can yield as many messages as you need to so that the user knows what’s going on.

After you put your migrator in a file, specify it with python.path.to.module:MigratorName. For example, the postgres migrator is expanded by the CLI interface but it’s full path is trek.runners.postgres:PostgresRunner

TODO

  • ✓ release on PyPI
  • ✓ add Postgres migrator
  • add other migrators as needed (open an issue on Github, for what you want, please!)
  • add flask-script manager interface
Release History

Release History

This version
History Node

0.0.1-

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
trek-0.0.1_-py2-none-any.whl (18.2 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Oct 6, 2014
trek-0.0.1-.tar.gz (5.8 kB) Copy SHA256 Checksum SHA256 Source Oct 6, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting