Django-migration-linter

Latest version: v5.1.0

Safety actively analyzes 621776 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 7

5.1.0

Feature:
- Support Django 5.0 `db_default` attribute (issue 275)
- Allow ignoring the failures of `sqlmigrate` commands, with `--ignore-sqlmigrate-errors` option (issue 274)

Bug:
- Don't detect 'IS NOT NULL' as backward incompatible changes (issue 263)
- Don't consider UNIQUE INDEX creation as making a column not nullable

Miscellaneous:
- Migrated from `setup.py` and `setup.cfg` to `pyproject.toml`
- Add support for Python 3.12
- Add support for Django 5.0
- Avoid git command injections
- Remove Codecov integration

5.0.0

**Breaking change**: stop silently ignoring when the internal `sqlmigrate` call fails and the linter cannot analyse the migration.
Instead, the linter crashes and lets the `sqlmigrate` error raise, in order to avoid letting a problematic migration pass.
One common reason for such an error is the SQL generation which requires the database to be actually migrated in order to fetch actual constraint names from it.
The crash is a sign to double-check the migration. But if you are certain the migration is safe, you can ignore it (issue 209)

Features:

- Fixed `RunPython` model import check when using a `through` object like `MyModel.many_to_many.through.objects.filter(...)` (issue 218)
- Mark the `IgnoreMigration` operation as `elidable=True`
- Handle `functools.partial` functions in RunPython data migrations
- Add a new check, `CREATE_INDEX_EXCLUSIVE` to detect index creation while an exclusive lock is held

Bug:

- Don't detect not nullable field on partial index creation (issue 250)

Miscellaneous:

- Add support for Python 3.11
- Add support for Django 4.1
- Add support for Django 4.2
- Drop support for Django 2.2
- Internally rename "migration tests" to "migration checks"
- Add dataclasses internally instead of custom dicts
- Use pre-commit hooks for linting
- Add `mypy` and `ruff` usages

4.1.0

- Allow configuring logging for `makemigrations` command and unify behaviour with `lintmigrations` (issue 207)
- Adapt `--warnings-as-errors` option to allow selecting some migration tests only (issue 201)
- Add `sql_analyser` option to `makemigrations` in order to specify the SQL analyser to use (issue 208)
- Make `project_root_path` and `verbosity` configurable from other setting source (issue 203)

4.0.0

- Drop support for Python 2.7, 3.5 and 3.6
- Add support for Python 3.10
- Drop support for Django 1.11, 2.0, 2.1, 3.0 and 3.1
- Add support for Django 4.0
- Fix index creation detection when table is being created in the transaction (issue 178)
- Handle unique index creation as adding a unique constraint (issue 183)
- Allow any option to be set/unset in config file (issue 167)
- Allow using Django settings for any option to be set/unset (issue 198)
- Raise when unsupported database vendor, allow passing an option to select SQL analyser (issue 138 and 169

3.0.1

Fixed bug:
- Setting a field as NOT NULL without default passed the linter.

3.0.0

**Breaking API change on `lintmigrations` command**:
* the positional argument `GIT_COMMIT_ID` becomes an optional argument with the named parameter ` --git-commit-id [GIT_COMMIT_ID]`
* the `lintmigrations` command takes now two positional arguments: `lintmigrations [app_label] [migration_name]`

New features:
* raise warning when create or dropping an index in a non-concurrent manner using postgresql

Miscellaneous:
* Add complete and working support for `toml` configuration files
* Handle `--verbosity 0` or `-v 0` correctly to not print anything from the linter
* Add code coverage to the linter
* Renamed `master` branch to `main`

Page 1 of 7

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.