Skip to main content

Yet another way to manage migrations: DBA as a service

Project description

https://badge.fury.io/py/django-north.png https://travis-ci.org/peopledoc/django-north.png?branch=master https://readthedocs.org/projects/django-north/badge/ https://img.shields.io/codecov/c/github/peopledoc/django-north/master.svg

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

Credits

Tools used in rendering this package:

History

0.3.0b3 (2020-07-20)

  • Add function for septentrion settings

0.3.0b2 (2020-07-17)

  • Fix classifiers

0.3.0b1 (2020-07-17)

  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-north-0.3.0b3.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

django_north-0.3.0b3-py2.py3-none-any.whl (17.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-north-0.3.0b3.tar.gz.

File metadata

  • Download URL: django-north-0.3.0b3.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for django-north-0.3.0b3.tar.gz
Algorithm Hash digest
SHA256 3de67419dc21de5e6cabc934cdff6e493086c50b4926067c53299dd87d3432f1
MD5 8b896737ba1da8381650c596d086920e
BLAKE2b-256 2f7647798bfd41aa0d22d262b00f225ef899893cdd8deb25580f4c147b04483f

See more details on using hashes here.

File details

Details for the file django_north-0.3.0b3-py2.py3-none-any.whl.

File metadata

  • Download URL: django_north-0.3.0b3-py2.py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for django_north-0.3.0b3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ca728545cc2ed18eeabdbbb6e18f28d9d1f77e810a636e3dbd2116d5cf6bf802
MD5 eca1a83573c9aff16c4b490b64b577ab
BLAKE2b-256 a537c2268d5d1c7bac134cfa079a5dbfc3efa00e270d0555e921a27fe9fdc2cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page