diff --git a/django_migration_linter/sql_analyser.py b/django_migration_linter/sql_analyser.py index d5fa251..4327e69 100644 --- a/django_migration_linter/sql_analyser.py +++ b/django_migration_linter/sql_analyser.py @@ -83,7 +83,8 @@ sqlite_migration_tests = [ { "code": "RENAME_TABLE", "fn": lambda sql, **kw: re.search("ALTER TABLE .* RENAME TO", sql) - and "__old" not in sql, + and "__old" not in sql + and "new__" not in sql, }, { "code": "NOT_NULL", @@ -91,7 +92,8 @@ sqlite_migration_tests = [ re.search("NOT NULL(?! PRIMARY)(?! DEFAULT)", sql) for sql in sql_statements ) and any( - re.search("ALTER TABLE .* RENAME TO", sql) and "__old" in sql + re.search("ALTER TABLE .* RENAME TO", sql) + and ("__old" in sql or "new__" in sql) for sql in sql_statements ), "mode": "transaction", diff --git a/tests/unit/test_sql_analyser.py b/tests/unit/test_sql_analyser.py index f911578..441d85a 100644 --- a/tests/unit/test_sql_analyser.py +++ b/tests/unit/test_sql_analyser.py @@ -101,6 +101,15 @@ class SqliteAnalyserTestCase(SqlAnalyserTestCase): ] self.assertValidSql(sql) + def test_alter_column_after_django22(self): + sql = [ + 'CREATE TABLE "new__app_alter_column_a" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "field" varchar(10) NULL);', + 'INSERT INTO "new__app_alter_column_a" ("id", "field") SELECT "id", "field" FROM "app_alter_column_a";', + 'DROP TABLE "app_alter_column_a";', + 'ALTER TABLE "new__app_alter_column_a" RENAME TO "app_alter_column_a";', + ] + self.assertValidSql(sql) + class PostgresqlAnalyserTestCase(SqlAnalyserTestCase): database_vendor = "postgresql"