fix: aerich upgrade
raises OperationalError when unique constraint dropped at migration 1_xxx.py with postgres (#383)
This commit is contained in:
parent
5572876714
commit
e4a3863f80
@ -10,7 +10,7 @@ class PostgresDDL(BaseDDL):
|
|||||||
schema_generator_cls = AsyncpgSchemaGenerator
|
schema_generator_cls = AsyncpgSchemaGenerator
|
||||||
DIALECT = AsyncpgSchemaGenerator.DIALECT
|
DIALECT = AsyncpgSchemaGenerator.DIALECT
|
||||||
_ADD_INDEX_TEMPLATE = 'CREATE {unique}INDEX "{index_name}" ON "{table_name}" ({column_names})'
|
_ADD_INDEX_TEMPLATE = 'CREATE {unique}INDEX "{index_name}" ON "{table_name}" ({column_names})'
|
||||||
_DROP_INDEX_TEMPLATE = 'DROP INDEX "{index_name}"'
|
_DROP_INDEX_TEMPLATE = 'DROP INDEX IF EXISTS "{index_name}"'
|
||||||
_ALTER_NULL_TEMPLATE = 'ALTER TABLE "{table_name}" ALTER COLUMN "{column}" {set_drop} NOT NULL'
|
_ALTER_NULL_TEMPLATE = 'ALTER TABLE "{table_name}" ALTER COLUMN "{column}" {set_drop} NOT NULL'
|
||||||
_MODIFY_COLUMN_TEMPLATE = (
|
_MODIFY_COLUMN_TEMPLATE = (
|
||||||
'ALTER TABLE "{table_name}" ALTER COLUMN "{column}" TYPE {datatype}{using}'
|
'ALTER TABLE "{table_name}" ALTER COLUMN "{column}" TYPE {datatype}{using}'
|
||||||
|
@ -174,9 +174,6 @@ def test_drop_index():
|
|||||||
if isinstance(Migrate.ddl, MysqlDDL):
|
if isinstance(Migrate.ddl, MysqlDDL):
|
||||||
assert ret == "ALTER TABLE `category` DROP INDEX `idx_category_name_8b0cb9`"
|
assert ret == "ALTER TABLE `category` DROP INDEX `idx_category_name_8b0cb9`"
|
||||||
assert ret_u == "ALTER TABLE `category` DROP INDEX `name`"
|
assert ret_u == "ALTER TABLE `category` DROP INDEX `name`"
|
||||||
elif isinstance(Migrate.ddl, PostgresDDL):
|
|
||||||
assert ret == 'DROP INDEX "idx_category_name_8b0cb9"'
|
|
||||||
assert ret_u == 'DROP INDEX "uid_category_name_8b0cb9"'
|
|
||||||
else:
|
else:
|
||||||
assert ret == 'DROP INDEX IF EXISTS "idx_category_name_8b0cb9"'
|
assert ret == 'DROP INDEX IF EXISTS "idx_category_name_8b0cb9"'
|
||||||
assert ret_u == 'DROP INDEX IF EXISTS "uid_category_name_8b0cb9"'
|
assert ret_u == 'DROP INDEX IF EXISTS "uid_category_name_8b0cb9"'
|
||||||
|
@ -946,14 +946,14 @@ def test_migrate(mocker: MockerFixture):
|
|||||||
|
|
||||||
elif isinstance(Migrate.ddl, PostgresDDL):
|
elif isinstance(Migrate.ddl, PostgresDDL):
|
||||||
expected_upgrade_operators = {
|
expected_upgrade_operators = {
|
||||||
'DROP INDEX "uid_category_title_f7fc03"',
|
'DROP INDEX IF EXISTS "uid_category_title_f7fc03"',
|
||||||
'ALTER TABLE "category" ALTER COLUMN "name" DROP NOT NULL',
|
'ALTER TABLE "category" ALTER COLUMN "name" DROP NOT NULL',
|
||||||
'ALTER TABLE "category" ALTER COLUMN "slug" TYPE VARCHAR(100) USING "slug"::VARCHAR(100)',
|
'ALTER TABLE "category" ALTER COLUMN "slug" TYPE VARCHAR(100) USING "slug"::VARCHAR(100)',
|
||||||
'ALTER TABLE "category" ALTER COLUMN "created_at" TYPE TIMESTAMPTZ USING "created_at"::TIMESTAMPTZ',
|
'ALTER TABLE "category" ALTER COLUMN "created_at" TYPE TIMESTAMPTZ USING "created_at"::TIMESTAMPTZ',
|
||||||
'ALTER TABLE "category" RENAME COLUMN "user_id" TO "owner_id"',
|
'ALTER TABLE "category" RENAME COLUMN "user_id" TO "owner_id"',
|
||||||
'ALTER TABLE "category" ADD CONSTRAINT "fk_category_user_110d4c63" FOREIGN KEY ("owner_id") REFERENCES "user" ("id") ON DELETE CASCADE',
|
'ALTER TABLE "category" ADD CONSTRAINT "fk_category_user_110d4c63" FOREIGN KEY ("owner_id") REFERENCES "user" ("id") ON DELETE CASCADE',
|
||||||
'ALTER TABLE "config" DROP COLUMN "name"',
|
'ALTER TABLE "config" DROP COLUMN "name"',
|
||||||
'DROP INDEX "uid_config_name_2c83c8"',
|
'DROP INDEX IF EXISTS "uid_config_name_2c83c8"',
|
||||||
'ALTER TABLE "config" ADD "user_id" INT NOT NULL',
|
'ALTER TABLE "config" ADD "user_id" INT NOT NULL',
|
||||||
'ALTER TABLE "config" ADD CONSTRAINT "fk_config_user_17daa970" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE',
|
'ALTER TABLE "config" ADD CONSTRAINT "fk_config_user_17daa970" FOREIGN KEY ("user_id") REFERENCES "user" ("id") ON DELETE CASCADE',
|
||||||
'ALTER TABLE "config" ALTER COLUMN "status" DROP DEFAULT',
|
'ALTER TABLE "config" ALTER COLUMN "status" DROP DEFAULT',
|
||||||
@ -962,7 +962,7 @@ def test_migrate(mocker: MockerFixture):
|
|||||||
'ALTER TABLE "email" ADD "address" VARCHAR(200) NOT NULL',
|
'ALTER TABLE "email" ADD "address" VARCHAR(200) NOT NULL',
|
||||||
'ALTER TABLE "email" RENAME COLUMN "id" TO "email_id"',
|
'ALTER TABLE "email" RENAME COLUMN "id" TO "email_id"',
|
||||||
'ALTER TABLE "email" ALTER COLUMN "is_primary" TYPE BOOL USING "is_primary"::BOOL',
|
'ALTER TABLE "email" ALTER COLUMN "is_primary" TYPE BOOL USING "is_primary"::BOOL',
|
||||||
'DROP INDEX "uid_product_uuid_d33c18"',
|
'DROP INDEX IF EXISTS "uid_product_uuid_d33c18"',
|
||||||
'ALTER TABLE "product" DROP COLUMN "uuid"',
|
'ALTER TABLE "product" DROP COLUMN "uuid"',
|
||||||
'ALTER TABLE "product" ALTER COLUMN "view_num" SET DEFAULT 0',
|
'ALTER TABLE "product" ALTER COLUMN "view_num" SET DEFAULT 0',
|
||||||
'ALTER TABLE "product" RENAME COLUMN "image" TO "pic"',
|
'ALTER TABLE "product" RENAME COLUMN "image" TO "pic"',
|
||||||
@ -1016,10 +1016,10 @@ def test_migrate(mocker: MockerFixture):
|
|||||||
'ALTER TABLE "product" ALTER COLUMN "is_reviewed" TYPE BOOL USING "is_reviewed"::BOOL',
|
'ALTER TABLE "product" ALTER COLUMN "is_reviewed" TYPE BOOL USING "is_reviewed"::BOOL',
|
||||||
'ALTER TABLE "product" ALTER COLUMN "body" TYPE TEXT USING "body"::TEXT',
|
'ALTER TABLE "product" ALTER COLUMN "body" TYPE TEXT USING "body"::TEXT',
|
||||||
'DROP TABLE IF EXISTS "product_user"',
|
'DROP TABLE IF EXISTS "product_user"',
|
||||||
'DROP INDEX "idx_product_name_869427"',
|
'DROP INDEX IF EXISTS "idx_product_name_869427"',
|
||||||
'DROP INDEX "idx_email_email_4a1a33"',
|
'DROP INDEX IF EXISTS "idx_email_email_4a1a33"',
|
||||||
'DROP INDEX "uid_user_usernam_9987ab"',
|
'DROP INDEX IF EXISTS "uid_user_usernam_9987ab"',
|
||||||
'DROP INDEX "uid_product_name_869427"',
|
'DROP INDEX IF EXISTS "uid_product_name_869427"',
|
||||||
'DROP TABLE IF EXISTS "email_user"',
|
'DROP TABLE IF EXISTS "email_user"',
|
||||||
'DROP TABLE IF EXISTS "newmodel"',
|
'DROP TABLE IF EXISTS "newmodel"',
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user