Yet another way to manage migrations: DBA as a service
Project description
Yet another way to manage migrations: DBA as a service.
Let your favorite DBAs define the database schema, and provide blue/green migration files. Drop django native migrations, and use DBA’s migrations everywhere.
Requirements
Postgresql only (>= 9.4)
Django, obviously. v1.11, v2.0, v2.1
Running under Python 2.7, 3.5, 3.6 or 3.7
Documentation
The full documentation is at https://django-north.readthedocs.org.
Quickstart
Install Django North:
pip install django-north
In your settings.py :
INSTALLED_APPS = [
# ...
"django_north",
]
NORTH_MANAGE_DB = True
NORTH_MIGRATIONS_ROOT = '/path/to/sql/migrations/'
NORTH_TARGET_VERSION = '1.42'
Running Tests
You will need a usable Postgresql database in order to test the project. For example:
source <YOURVIRTUALENV>/bin/activate export DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME (myenv) $ pip install -r requirements_test.txt
Run tests for a specific version
(myenv) $ ./runtest
Run tests for all versions (if tox is installed globally, you don’t need a virtual environment)
$ tox
Using the project
Many operations are documented in the Makefile. For more information, use:
$ make help
Credits
Tools used in rendering this package:
History
0.2.6 (2019-10-25)
Add support for Django 2.2
NORTH_AFTER_SCHEMA_FILES and NORTH_BEFORE_SCHEMA_FILES can now accept glob string.
0.2.5 (2019-01-22)
Add support for Django 2.1 & Python 3.7
Add setting NORTH_AFTER_SCHEMA_FILES for schema files after the main schema.
Adding setting NORTH_BEFORE_SCHEMA_FILES, to replace NORTH_ADDITIONAL_SCHEMA_FILES.
Deprecate setting NORTH_ADDITIONAL_SCHEMA_FILES.
0.2.4 (2018-09-12)
Use –database option to determine which database to use in migrate command (#35)
0.2.3 (2018-06-15)
Add support for Django 2.0 (#31)
Add a “DISCARD ALL” command run at the end of each script. It adds a new settings variable: NORTH_DISCARD_ALL (#33)
0.2.2 (2018-02-01)
Flush command: do not flush migration tables.
0.2.1 (2018-01-29)
Add VACUUM to NORTH_NON_TRANSACTIONAL_KEYWORDS default settings.
Add a setting NORTH_SCHEMA_VERSION to force the schema to be used to init a DB.
0.2.0 (2017-10-16)
Backport the sqlall command.
Sanitize sql statements for SimpleBlock.
0.1.8 (2017-09-20)
Detect manual files if not stored in the ‘manual’ dir.
Fix unicode error with SimpleBlock
0.1.7 (2017-09-06)
Fix get_applied_versions result ordering.
0.1.6 (2017-09-05)
Add tests for Django 1.11.
0.1.5 (2017-05-24)
Fix showfixtures command for Django 1.10.
0.1.4 (2017-05-10)
Do not fail if fixtures do not exist. Use the closest fixtures for DB init and flush command.
Add support of python3.
0.1.3 (2017-04-18)
Use a Block if the sql file contains a ‘ALTER TYPE’ instruction Add a setting to customize the files to run in a Block.
0.1.2 (2017-04-13)
Use a Block if the sql file contains a CONCURRENTLY instruction.
0.1.1 (2017-04-11)
Add the possibility to configure the current version detector.
0.1.0 (2017-03-28)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_north-0.2.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2f64b5e1c542b08da0d9d15d0cf9b4feb8a27b80bbeddb39bed4b68f2e11b433 |
|
MD5 | 8890f3444b48954aa4f71c939cdbc633 |
|
BLAKE2b-256 | 7dbd9f21e010101b128aef03173832ad3e9dd544109b5fd2cc0269db938d78c0 |