Rename data migration lint checks
This commit is contained in:
1 parent
1824410ac5
commit
4b15e11faa
4 files changed
+32
-22
No files matched your search
+11
-1
@@ -1,11 +1,21 @@
|
|||||||
## 2.5.0
|
## 2.5.0
|
||||||
|
|
||||||
|
**Renamed lint checks**:
|
||||||
|
* `REVERSIBLE_DATA_MIGRATION` -> `RUNPYTHON_REVERSIBLE`
|
||||||
|
* `NAMING_CONVENTION_RUNPYTHON_ARGS` -> `RUNPYTHON_ARGS_NAMING_CONVENTION`
|
||||||
|
* `DATA_MIGRATION_MODEL_IMPORT` -> `RUNPYTHON_MODEL_IMPORT`
|
||||||
|
* `DATA_MIGRATION_MODEL_VARIABLE_NAME` -> `RUNPYTHON_MODEL_VARIABLE_NAME`
|
||||||
|
* `REVERSIBLE_RUNSQL_DATA_MIGRATION` -> `RUNSQL_REVERSIBLE`
|
||||||
|
|
||||||
|
Features/fixes:
|
||||||
* Add Python 3.9 support
|
* Add Python 3.9 support
|
||||||
* Make data migration model import error less strict (issue #121)
|
* Make data migration model import error less strict (issue #121)
|
||||||
* Add warning detection on RunPython call when model variable name is not the same as model class name
|
* Add warning detection on RunPython call when model variable name is not the same as model class name
|
||||||
* Run checks on RunSQL migration operations
|
* Run checks on RunSQL migration operations
|
||||||
|
* Rename the RunPython data migration lint checks for improved consistency
|
||||||
|
|
||||||
Switched from Travis CI to GitHub Actions for tests
|
Others:
|
||||||
|
* Switched from Travis CI to GitHub Actions for tests
|
||||||
|
|
||||||
## 2.4.1
|
## 2.4.1
|
||||||
|
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ class MigrationLinter(object):
|
|||||||
# Detect warning on missing reverse operation
|
# Detect warning on missing reverse operation
|
||||||
if not runpython.reversible:
|
if not runpython.reversible:
|
||||||
issue = {
|
issue = {
|
||||||
"code": "REVERSIBLE_DATA_MIGRATION",
|
"code": "RUNPYTHON_REVERSIBLE",
|
||||||
"msg": "'{}': RunPython data migration is not reversible".format(
|
"msg": "'{}': RunPython data migration is not reversible".format(
|
||||||
function_name
|
function_name
|
||||||
),
|
),
|
||||||
@@ -433,7 +433,7 @@ class MigrationLinter(object):
|
|||||||
)
|
)
|
||||||
if tuple(args_spec.args) != EXPECTED_DATA_MIGRATION_ARGS:
|
if tuple(args_spec.args) != EXPECTED_DATA_MIGRATION_ARGS:
|
||||||
issue = {
|
issue = {
|
||||||
"code": "NAMING_CONVENTION_RUNPYTHON_ARGS",
|
"code": "RUNPYTHON_ARGS_NAMING_CONVENTION",
|
||||||
"msg": (
|
"msg": (
|
||||||
"'{}': By convention, "
|
"'{}': By convention, "
|
||||||
"RunPython names the two arguments: apps, schema_editor"
|
"RunPython names the two arguments: apps, schema_editor"
|
||||||
@@ -502,7 +502,7 @@ class MigrationLinter(object):
|
|||||||
if not has_get_model_call:
|
if not has_get_model_call:
|
||||||
issues.append(
|
issues.append(
|
||||||
{
|
{
|
||||||
"code": "DATA_MIGRATION_MODEL_IMPORT",
|
"code": "RUNPYTHON_MODEL_IMPORT",
|
||||||
"msg": (
|
"msg": (
|
||||||
"'{}': Could not find an 'apps.get_model(\"...\", \"{}\")' "
|
"'{}': Could not find an 'apps.get_model(\"...\", \"{}\")' "
|
||||||
"call. Importing the model directly is incorrect for "
|
"call. Importing the model directly is incorrect for "
|
||||||
@@ -543,7 +543,7 @@ class MigrationLinter(object):
|
|||||||
if not has_same_model_name:
|
if not has_same_model_name:
|
||||||
issues.append(
|
issues.append(
|
||||||
{
|
{
|
||||||
"code": "DATA_MIGRATION_MODEL_VARIABLE_NAME",
|
"code": "RUNPYTHON_MODEL_VARIABLE_NAME",
|
||||||
"msg": (
|
"msg": (
|
||||||
"'{}': Model variable name {} is different from the "
|
"'{}': Model variable name {} is different from the "
|
||||||
"model class name that was found in the "
|
"model class name that was found in the "
|
||||||
@@ -561,7 +561,7 @@ class MigrationLinter(object):
|
|||||||
# Detect warning on missing reverse operation
|
# Detect warning on missing reverse operation
|
||||||
if not runsql.reversible:
|
if not runsql.reversible:
|
||||||
issue = {
|
issue = {
|
||||||
"code": "REVERSIBLE_RUNSQL_DATA_MIGRATION",
|
"code": "RUNSQL_REVERSIBLE",
|
||||||
"msg": "RunSQL data migration is not reversible",
|
"msg": "RunSQL data migration is not reversible",
|
||||||
}
|
}
|
||||||
if issue["code"] in self.exclude_migration_tests:
|
if issue["code"] in self.exclude_migration_tests:
|
||||||
|
|||||||
+14
-14
@@ -25,17 +25,17 @@ On data migrations, the linter will show a warning when:
|
|||||||
|
|
||||||
You can ignore check through the `--exclude-migration-test` option and specifying any of the codes:
|
You can ignore check through the `--exclude-migration-test` option and specifying any of the codes:
|
||||||
|
|
||||||
| Code | Description |
|
| Code | Description |
|
||||||
|-------------------------------------|----------------------------------------------------------------------|
|
|-----------------------------------|----------------------------------------------------------------------|
|
||||||
|`NOT_NULL` | Not NULL constraint on columns
|
|`NOT_NULL` | Not NULL constraint on columns
|
||||||
|`DROP_COLUMN` | Dropping columns
|
|`DROP_COLUMN` | Dropping columns
|
||||||
|`DROP_TABLE` | Dropping tables
|
|`DROP_TABLE` | Dropping tables
|
||||||
|`RENAME_COLUMN` | Renaming columns
|
|`RENAME_COLUMN` | Renaming columns
|
||||||
|`RENAME_TABLE` | Renaming tables
|
|`RENAME_TABLE` | Renaming tables
|
||||||
|`ALTER_COLUMN` | Altering columns (could be backward compatible)
|
|`ALTER_COLUMN` | Altering columns (could be backward compatible)
|
||||||
|`ADD_UNIQUE` | Add unique constraints
|
|`ADD_UNIQUE` | Add unique constraints
|
||||||
|`REVERSIBLE_DATA_MIGRATION` | RunPython data migration is not reversible (missing reverse code)
|
|`RUNPYTHON_REVERSIBLE` | RunPython data migration is not reversible (missing reverse code)
|
||||||
|`NAMING_CONVENTION_RUNPYTHON_ARGS` | By convention, RunPython names two arguments: apps, schema_editor
|
|`RUNPYTHON_ARGS_NAMING_CONVENTION` | By convention, RunPython names two arguments: apps, schema_editor
|
||||||
|`DATA_MIGRATION_MODEL_IMPORT` | Missing apps.get_model() calls for model
|
|`RUNPYTHON_MODEL_IMPORT` | Missing apps.get_model() calls for model
|
||||||
|`DATA_MIGRATION_MODEL_VARIABLE_NAME` | The model variable name is different from the model class itself
|
|`RUNPYTHON_MODEL_VARIABLE_NAME` | The model variable name is different from the model class itself
|
||||||
|`REVERSIBLE_RUNSQL_DATA_MIGRATION` | RunSQL data migration is not reversible (missing reverse SQL)
|
|`RUNSQL_REVERSIBLE` | RunSQL data migration is not reversible (missing reverse SQL)
|
||||||
@@ -39,7 +39,7 @@ class DataMigrationDetectionTestCase(unittest.TestCase):
|
|||||||
self.linter = MigrationLinter(
|
self.linter = MigrationLinter(
|
||||||
self.test_project_path,
|
self.test_project_path,
|
||||||
include_apps=fixtures.DATA_MIGRATIONS,
|
include_apps=fixtures.DATA_MIGRATIONS,
|
||||||
exclude_migration_tests=("REVERSIBLE_DATA_MIGRATION",),
|
exclude_migration_tests=("RUNPYTHON_REVERSIBLE",),
|
||||||
)
|
)
|
||||||
|
|
||||||
reverse_migration = self.linter.migration_loader.disk_migrations[
|
reverse_migration = self.linter.migration_loader.disk_migrations[
|
||||||
@@ -254,7 +254,7 @@ class RunSQLMigrationTestCase(unittest.TestCase):
|
|||||||
runsql = migrations.RunSQL("sql;")
|
runsql = migrations.RunSQL("sql;")
|
||||||
|
|
||||||
error, ignored, warning = self.linter.lint_runsql(runsql)
|
error, ignored, warning = self.linter.lint_runsql(runsql)
|
||||||
self.assertEqual("REVERSIBLE_RUNSQL_DATA_MIGRATION", warning[0]["code"])
|
self.assertEqual("RUNSQL_REVERSIBLE", warning[0]["code"])
|
||||||
|
|
||||||
def test_sql_linting_error(self):
|
def test_sql_linting_error(self):
|
||||||
runsql = migrations.RunSQL("ALTER TABLE t DROP COLUMN t;")
|
runsql = migrations.RunSQL("ALTER TABLE t DROP COLUMN t;")
|
||||||
|
|||||||
Reference in new issue
Block a user