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 anything.

<a href="https://travis-ci.org/3YOURMIND/django-migration-linter"><img src="https://travis-ci.org/3YOURMIND/django-migration-linter.svg?branch=master" alt="badge of travis CI" /></a>
<a href="https://pypi.python.org/pypi/django-migration-linter/"><img src="https://img.shields.io/pypi/v/django-migration-linter.svg" alt="PyPi version" /></a>
<a href="./LICENSE"><img src="https://img.shields.io/github/license/3yourmind/django-migration-linter.svg" alt="badge of license" /></a>
<a href="https://github.com/3YOURMIND/django-migration-linter/pulls"><img src="https://img.shields.io/badge/PR-welcome-green.svg" alt="badge of pull request welcome" /></a>
<a href="https://www.3yourmind.com/career"><img src="https://img.shields.io/badge/3YOURMIND-Hiring-brightgreen.svg" alt="badge of hiring advertisement of 3yourmind" /></a>
<a href="https://github.com/3YOURMIND/django-migration-linter/stargazers"><img src="https://img.shields.io/github/stars/3YOURMIND/django-migration-linter.svg?style=social&label=Stars" alt="badge of github star" /></a>

## Dependencies

<p><details>
<summary><b>Needed software (in PATH)</b></summary>

* `python`
* `git` (if you specify a git identifier)
</details></p>

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

## Installation

<p><details><summary><b>Using pip</b></summary>
<pre><code>pip install django-migration-linter</code></pre>
</details></p>

## 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](https://bitbucket.org/product/features/pipelines) with every build getting triggered in this environment.

![](https://i.imgur.com/ocLpQXP.png)

## Tests

The easiest way to run the tests is to invoke [tox](https://pypi.python.org/pypi/tox).

## Contributing

First, thank you very much if you want to contribute to the project.
Please base your work on the `dev` branch and also target this branch in your pull request.

## License

*django-migration-linter* is released under the [Apache 2.0 License](./LICENSE).


Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

django_migration_linter-0.0.4-py2.py3-none-any.whl (18.8 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for django_migration_linter-0.0.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2ab76d1e7c20aa93798769247bbf2a14c64064bb5dbddd92e754d41342971ccc
MD5 e8069df7c0a581629c20a287f4963804
BLAKE2b-256 928633cc441f8ace6bcaa11f558f0a85390c96a01774b1448d1e93a1065ccffb

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