Source Code: https://github.com/browniebroke/flake8-django-migrations
Flake8 plugin to lint for backwards incompatible database migrations.
Install using pip
(or your favourite package manager):
pip install flake8-django-migrations
This plugin should be used automatically when running flake8:
flake8
This is the list of checks currently implemented by this plugin.
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.
class Migration(migrations.Migration):
operations = [
migrations.RemoveField(
model_name="order",
name="total",
),
]
class Migration(migrations.Migration):
operations = [
migrations.SeparateDatabaseAndState(
state_operations=[
migrations.RemoveField(
model_name="order",
name="total",
),
],
),
]