Skip to main content

Detect backward incompatible migrations for your django project

Project description

Django migration linter

Detect backward incompatible migrations for your Django project. It will save you time by making sure migrations will not break with a older codebase.

Travis PyPI PR_Welcome 3YD_Hiring GitHub_Stars

Quick installation

pip install django-migration-linter

And add the migration linter your INSTALLED_APPS:

    INSTALLED_APPS = [
        ...,
        "django_migration_linter",
        ...,
    ]

Usage example

$ python manage.py lintmigrations

(app_add_not_null_column, 0001_create_table)... OK
(app_add_not_null_column, 0002_add_new_not_null_field)... ERR
        NOT NULL constraint on columns
(app_drop_table, 0001_initial)... OK
(app_drop_table, 0002_delete_a)... ERR
        DROPPING table
(app_ignore_migration, 0001_initial)... OK
(app_ignore_migration, 0002_ignore_migration)... IGNORE
(app_rename_table, 0001_initial)... OK
(app_rename_table, 0002_auto_20190414_1500)... ERR
        RENAMING tables

*** Summary ***
Valid migrations: 4/8
Erroneous migrations: 3/8
Migrations with warnings: 0/8
Ignored migrations: 1/8

The linter analysed all migrations from the Django project. It found 3 migrations that are doing backward incompatible operations and 1 that is explicitly ignored. The list of incompatibilities that the linter analyses can be found at docs/incompatibilities.md.

More advanced usages of the linter and options can be found at docs/usage.md.

More information

Please find more documentation generally in the docs/ folder.

Some implementation details can found in the ./docs/internals/ folder.

Blog post

Keeping Django database migrations backward compatible

License

django-migration-linter is released under the Apache 2.0 License.

Maintained by David Wobrock

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-migration-linter-2.2.1.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

django_migration_linter-2.2.1-py2.py3-none-any.whl (75.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file django-migration-linter-2.2.1.tar.gz.

File metadata

  • Download URL: django-migration-linter-2.2.1.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for django-migration-linter-2.2.1.tar.gz
Algorithm Hash digest
SHA256 917687973b47d8f02d74c1d7c01c60b4817f749b2678042a32f54d2ecc66fc80
MD5 6d9c034ef5b330e268571310ba7d65b4
BLAKE2b-256 03778fe5ed2f53eed7c8e7e626914953abfba449e19d89cbc828d5a96ff2e9c8

See more details on using hashes here.

File details

Details for the file django_migration_linter-2.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: django_migration_linter-2.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 75.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.8.2

File hashes

Hashes for django_migration_linter-2.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5ee5bde561b0106a502978bcb7bfab4a91f6e7f93e35c620ff4ee6548b557a71
MD5 00d0d1e2337024e83fd20aa82b55d856
BLAKE2b-256 72cbcf4f3f16fee37f427e99968644fe3dde98dfa943706c1fc43e0201677ab3

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