Django migration linter

Detect backward incompatible migrations for your django project. It will save you time by making sure migrations will not break anything.

badge of travis CI PyPi version badge of license badge of pull request welcome badge of hiring advertisement of 3yourmind badge of github star

Dependencies

Needed software (in PATH)
  • python
  • git
  • UNIX command line tools like tail

The linter will try to detect if the project is a django project and is versioned with git.

Installation

Using pip
pip install django-migration-linter

Usage

django-migration-linter DJANGO_PROJECT_FOLDER [GIT_COMMIT_ID] [--ignore-name-contains=IGNORE_NAME_CONTAINS] [--include-apps INCLUDE_APPS [INCLUDE_APPS ...] | --exclude-apps EXCLUDE_APPS [EXCLUDE_APPS ...]]

Parameter Description
DJANGO_PROJECT_FOLDER An absolute or relative path to the django project.
GIT_COMMIT_ID If specified, only migrations since this commit will be taken into account. If not specified, the initial repo commit will be used.
--ignore-name-contains IGNORE_NAME_CONTAINS Ignore migrations containing this name
--ignore-name IGNORE_NAME [IGNORE_NAME ...] Ignore migrations with exactly one of these names
--include-apps INCLUDE_APPS [INCLUDE_APPS ...] Check only migrations that are in the specified django apps
--exclude-apps EXCLUDE_APPS [EXCLUDE_APPS ...] Ignore migrations that are in the specified django apps
--verbose or -v print more information during execution
--database DATABASE Specify the database for which to generate the SQL. Defaults to default

Examples

3YOURMIND is running this on Bitbucket Pipelines with every build getting triggered in this environment.

Tests

The easiest way to run the tests is to invoke py.test.

More tests are always welcome.

License

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

S
Description
Maintained upstream-compatible Django migration analysis with new-table provenance
Readme
772 KiB
0 Stars 15 Watchers 0 Forks
Languages
Python 100%