The Python REST HTTP Toolkit and Object Relational Mapper.
Warning
New naming scheme is implemented for migration file names. The old naming scheme is supported as well. Recommended new file name format:
<migration number>-<message>-<hash>.py
Note
In order to rename the migration files for the new naming scheme, please use the following command:
$ ra-rename-migrations -p <path-to-migrations>
Create migrations:
Warning
Auto migration should not depend on manual one.
$ ra-new-migration --path examples/migrations/ --message "1st migration" $ ra-new-migration --path examples/migrations/ --message "2st migration" --depend 1st $ ra-new-migration --path examples/migrations/ --message "3st migration" --depend 2st $ ra-new-migration --path examples/migrations/ --message "4st migration" $ ra-new-migration --path examples/migrations/ --message "5st migration" --depend 3st --depend 4st
Note
You can create MANUAL migrations using --manual parameter
$ ra-new-migration --path examples/migrations/ --message "manual migration" --manual
Apply migrations:
$ ra-apply-migration --path examples/migrations/ --db-connection mysql://test:test@localhost/test -m 5st > upgrade 1st > upgrade 2st > upgrade 3st > upgrade 4st > upgrade 5st
Note
if you want to apply the latest migration run ra-apply-migration without -m parameter
$ ra-apply-migration --path examples/migrations/ --db-connection mysql://test:test@localhost/test
if it is impossible to find the latests migration, the tool will crash with the error "Head migration for current migrations couldnt be found"
Rolled back migrations:
$ ra-rollback-migration --path examples/migrations/ --db-connection mysql://test:test@localhost/test -m 4st > downgrade 5st > downgrade 4st
$ ra-rollback-migration --path examples/migrations/ --db-connection mysql://test:test@localhost/test -m 1st > downgrade 3st > downgrade 2st > downgrade 1st
Run tests for python 2.7
$ tox -e py27
Run functional tests (python 2.7)
$ export DATABASE_URI="mysql://test:test@localhost/test" $ tox -e functional