Skip to main content

Flake8 plugin to lint for backwards incompatible database migrations

Project description

flake8-django-migrations

Flake8 plugin to lint for backwards incompatible database migrations.

Installation

Install using pip (or your favourite package manager):

pip install flake8-django-migrations

Usage

This plugin should be used automatically when running flake8:

flake8

Checks

This is the list of checks currently implemented by this plugin.

DM001

RemoveField operation should be wrapped in SeparateDatabaseAndState.

Such an operation should be run in two separate steps, using SeparateDatabaseAndState, otherwise it is not backwards compatible.

  • Step 1: remove the field from the model and code. For foreign key fields, the foreign key constraint should also be dropped.
  • Step 2: remove the column from the database.

Bad

class Migration(migrations.Migration):
    operations = [
        migrations.RemoveField(
            model_name="order",
            name="total",
        ),
    ]

Good

class Migration(migrations.Migration):
    operations = [
        migrations.SeparateDatabaseAndState(
            state_operations=[
                migrations.RemoveField(
                    model_name="order",
                    name="total",
                ),
            ],
        ),
    ]

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

flake8-django-migrations-0.1.0.tar.gz (3.5 kB view details)

Uploaded Source

Built Distribution

flake8_django_migrations-0.1.0-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file flake8-django-migrations-0.1.0.tar.gz.

File metadata

  • Download URL: flake8-django-migrations-0.1.0.tar.gz
  • Upload date:
  • Size: 3.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.3 CPython/3.8.6 Darwin/19.6.0

File hashes

Hashes for flake8-django-migrations-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a1ed9e243e0f50fcb078b0987713bf5cb127f0530591b2075436f3ec2ebefca6
MD5 0f7ea2d5e3889e4437a7d816fdecdc2d
BLAKE2b-256 489d32ac62a612f1c62ee12ca43d6c3f50c8a849d2b129a45f0a383500c87ba5

See more details on using hashes here.

File details

Details for the file flake8_django_migrations-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_django_migrations-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 818a22aaa3737cd3b837078a2cffa139520f863d3f16d1531042dd66c8c98de2
MD5 f8d77010730ea6a9541bfc902ffd33df
BLAKE2b-256 b684ec36cf90a3ea4dac6944f6e85a7eb8818c483fcfcce1f3c7bf0428348f13

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