1
1
mirror of https://github.com/yandex/pgmigrate.git synced 2024-09-17 15:17:18 +03:00
Simple tool to evolve PostgreSQL schema easily.
Go to file
2017-12-02 22:13:41 +03:00
doc Add warning message on skipped migration files and document migration file format in tutorial 2017-12-02 22:02:44 +03:00
features Raise error on missing migrations directory 2017-12-02 21:44:49 +03:00
.gitignore First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
.isort.cfg First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
.pylintrc First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
.travis.yml First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
AUTHORS Raise error on missing migrations directory 2017-12-02 21:44:49 +03:00
Dockerfile Move to postgresql 10 in tests 2017-12-02 22:13:41 +03:00
LICENSE First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
Makefile First opensource version - PGmigrate 1.0.0 2016-10-03 18:52:42 +03:00
pgmigrate.py Add warning message on skipped migration files and document migration file format in tutorial 2017-12-02 22:02:44 +03:00
README.md Release 1.0.2 2017-04-05 16:10:46 +03:00
run_test.sh Move to postgresql 10 in tests 2017-12-02 22:13:41 +03:00
setup.py Release 1.0.2 2017-04-05 16:10:46 +03:00
tox.ini Refactor code a bit and add more linters 2017-12-02 21:13:31 +03:00

PyPI version Build Status

PGmigrate

PostgreSQL migrations made easy

Overview

PGmigrate is a database migration tool developed by Yandex.

PGmigrate has the following key-features:

  • Transactional and nontransactional migrations: you can enjoy whole power of PostgreSQL DDL
  • Callbacks: you can run some DDL on specific steps of migration process (e.g. drop some code before executing migrations, and create it back after migrations were applied)
  • Online migrations: you can execute series of transactional migrations and callbacks in a single transaction (so, if something goes wrong simple ROLLBACK will bring you in consistent state)

Install

pip install yandex-pgmigrate

Running tests

Tests require running PostgreSQL instance with superuser (to create/drop dbs). You could setup this yourself and use tox to start tests:

tox

Second option is to use docker and make:

make test

How to use

Complete manual is here.

Release history

  • 1.0.2 (2017-04-05)
    • Speed up get_info function a bit
    • Fix callbacks in transactional/nontransactional migrations mix on db init
  • 1.0.1 (2017-04-01)
    • Fix bug with python format patterns in migration text
    • Sort info command output by version
    • Support 'latest' target version
    • Add option to override user in migration meta
    • Fix info command fail without target on initialized database
    • Add session setup option
  • 1.0.0 (2016-10-03)
    • First opensource version

License

Distributed under the PostgreSQL license. See LICENSE for more information.