Yet another way to manage migrations: DBA as a service
Project description
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
- Django v1.11, v2.0, v2.1, v2.2
- Running under Python 3.6, 3.7 or 3.8
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
History
0.3.1 (2020-07-24)
- Fix septentrion call in runserver
- Bump to septentrion 0.6.1
0.3.0 (2020-07-24)
- Remove setting “NORTH_DISCARD_ALL”
- Add function for septentrion settings
- Fix classifiers
- Removed the internal logic for applying migrations, use septentrion instead.
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size django_north-0.3.1-py2.py3-none-any.whl (19.4 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size django-north-0.3.1.tar.gz (16.7 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for django_north-0.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ebd5f11cf4f7888e97e3e59268a13a167422cbd38f3d71e2481c6885a2757688 |
|
MD5 | 795ec8df8c066c18c4cba30a8686d69e |
|
BLAKE2-256 | 475f5307df8046f2992b1492e63ab3f6c79499292a2d57c47b5e9c25db1024b9 |