Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yandex/pgmigrate
Simple tool to evolve PostgreSQL schema easily.
https://github.com/yandex/pgmigrate
Last synced: 4 days ago
JSON representation
Simple tool to evolve PostgreSQL schema easily.
- Host: GitHub
- URL: https://github.com/yandex/pgmigrate
- Owner: yandex
- License: postgresql
- Created: 2016-10-02T15:36:29.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-09-21T10:52:40.000Z (about 2 months ago)
- Last Synced: 2024-10-02T19:23:50.720Z (about 1 month ago)
- Language: Python
- Size: 166 KB
- Stars: 627
- Watchers: 25
- Forks: 61
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
- jimsghstars - yandex/pgmigrate - Simple tool to evolve PostgreSQL schema easily. (Python)
README
[![PyPI version](https://badge.fury.io/py/yandex-pgmigrate.svg)](https://badge.fury.io/py/yandex-pgmigrate)
![Build Status](https://github.com/yandex/pgmigrate/workflows/Test/badge.svg)# 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](https://pypi.python.org/pypi/tox)
to start tests:
```
tox
```
Second option is to use [docker](https://www.docker.com) and make:
```
make test
```## How to use
Complete manual is [here](doc/tutorial.md).
## Release history
* 1.0.9 (2024-07-06)
* Add an option to show only unapplied migrations in info
* 1.0.8 (2024-03-08)
* Allow reordering setting schema version and afterEach callback
* 1.0.7 (2022-02-02)
* Skip unnecessary schema creation on init
* Add file path to statement apply error log
* Add version gaps check
* 1.0.6 (2020-10-29)
* Make dsn manipulations more robust
* Fix empty values-related bugs in config and args parsing
* 1.0.5 (2020-02-29)
* Use application_name instead of backend pid for conflict termination
* 1.0.4 (2019-04-14)
* Allow using subdirs in migrations folder
* 1.0.3 (2017-12-28)
* Fix migration error with comment at the end of file
* Add blocking pids termination
* Some minor fixes and improvements
* 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](LICENSE) for more
information.