Django North¶
Django library for managing and executing hand-written PostgreSQL migrations.
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