@@ -365,6 +365,21 @@ def describe_index(idx: Index) -> Index | dict:
365365 "constraints" : {"max_length" : 200 },
366366 "db_field_types" : {"" : "VARCHAR(200)" },
367367 },
368+ {
369+ "name" : "company" ,
370+ "field_type" : "CharField" ,
371+ "db_column" : "company" ,
372+ "python_type" : "str" ,
373+ "generated" : False ,
374+ "nullable" : False ,
375+ "unique" : False ,
376+ "indexed" : True ,
377+ "default" : None ,
378+ "description" : None ,
379+ "docstring" : None ,
380+ "constraints" : {"max_length" : 100 },
381+ "db_field_types" : {"" : "VARCHAR(100)" },
382+ },
368383 {
369384 "name" : "is_primary" ,
370385 "field_type" : "BooleanField" ,
@@ -929,6 +944,7 @@ def test_migrate(mocker: MockerFixture):
929944 - drop fk field: Email.user
930945 - drop field: User.avatar
931946 - add index: Email.email
947+ - add unique to indexed field: Email.company
932948 - change index type for indexed field: Email.slug
933949 - add many to many: Email.users
934950 - add one to one: Email.config
@@ -977,6 +993,7 @@ def test_migrate(mocker: MockerFixture):
977993 "ALTER TABLE `email` ADD `address` VARCHAR(200) NOT NULL" ,
978994 "ALTER TABLE `email` ADD CONSTRAINT `fk_email_config_76a9dc71` FOREIGN KEY (`config_id`) REFERENCES `config` (`id`) ON DELETE CASCADE" ,
979995 "ALTER TABLE `email` ADD `config_id` INT NOT NULL UNIQUE" ,
996+ "ALTER TABLE `email` DROP INDEX `idx_email_company_1c9234`, ADD UNIQUE (`company`)" ,
980997 "ALTER TABLE `configs` RENAME TO `config`" ,
981998 "ALTER TABLE `product` DROP COLUMN `uuid`" ,
982999 "ALTER TABLE `product` DROP INDEX `uuid`" ,
@@ -1019,20 +1036,21 @@ def test_migrate(mocker: MockerFixture):
10191036 "ALTER TABLE `config` ADD UNIQUE INDEX `name` (`name`)" ,
10201037 "ALTER TABLE `config` DROP FOREIGN KEY `fk_config_user_17daa970`" ,
10211038 "ALTER TABLE `config` ALTER COLUMN `status` SET DEFAULT 1" ,
1022- "ALTER TABLE `email` ADD `user_id` INT NOT NULL" ,
10231039 "ALTER TABLE `config` DROP COLUMN `user_id`" ,
1040+ "ALTER TABLE `config` RENAME TO `configs`" ,
1041+ "ALTER TABLE `email` ADD `user_id` INT NOT NULL" ,
10241042 "ALTER TABLE `email` DROP COLUMN `address`" ,
10251043 "ALTER TABLE `email` DROP COLUMN `config_id`" ,
10261044 "ALTER TABLE `email` DROP FOREIGN KEY `fk_email_config_76a9dc71`" ,
1027- "ALTER TABLE `config` RENAME TO `configs`" ,
1028- "ALTER TABLE `product` RENAME COLUMN `pic` TO `image`" ,
10291045 "ALTER TABLE `email` RENAME COLUMN `email_id` TO `id`" ,
1046+ "ALTER TABLE `email` DROP INDEX `company`, ADD INDEX (`idx_email_company_1c9234`)" ,
1047+ "ALTER TABLE `email` DROP INDEX `idx_email_email_4a1a33`" ,
1048+ "ALTER TABLE `product` RENAME COLUMN `pic` TO `image`" ,
10301049 "ALTER TABLE `product` ADD `uuid` INT NOT NULL UNIQUE" ,
10311050 "ALTER TABLE `product` ADD UNIQUE INDEX `uuid` (`uuid`)" ,
10321051 "ALTER TABLE `product` DROP INDEX `idx_product_name_869427`" ,
10331052 "ALTER TABLE `product` DROP COLUMN `price`" ,
10341053 "ALTER TABLE `product` DROP COLUMN `no`" ,
1035- "ALTER TABLE `email` DROP INDEX `idx_email_email_4a1a33`" ,
10361054 "ALTER TABLE `product` DROP INDEX `uid_product_name_869427`" ,
10371055 "ALTER TABLE `product` DROP INDEX `idx_product_no_e4d701`" ,
10381056 "ALTER TABLE `product` ALTER COLUMN `view_num` DROP DEFAULT" ,
@@ -1074,6 +1092,8 @@ def test_migrate(mocker: MockerFixture):
10741092 'ALTER TABLE "email" DROP COLUMN "user_id"' ,
10751093 'ALTER TABLE "email" ADD CONSTRAINT "fk_email_config_76a9dc71" FOREIGN KEY ("config_id") REFERENCES "config" ("id") ON DELETE CASCADE' ,
10761094 'ALTER TABLE "email" ADD "config_id" INT NOT NULL UNIQUE' ,
1095+ 'DROP INDEX IF EXISTS "idx_email_company_1c9234"' ,
1096+ 'CREATE UNIQUE INDEX IF NOT EXISTS "uid_email_company_1c9234" ON "email" ("company")' ,
10771097 'DROP INDEX IF EXISTS "uid_product_uuid_d33c18"' ,
10781098 'ALTER TABLE "product" DROP COLUMN "uuid"' ,
10791099 'ALTER TABLE "product" ALTER COLUMN "view_num" SET DEFAULT 0' ,
@@ -1121,6 +1141,8 @@ def test_migrate(mocker: MockerFixture):
11211141 'ALTER TABLE "email" RENAME COLUMN "email_id" TO "id"' ,
11221142 'ALTER TABLE "email" DROP COLUMN "config_id"' ,
11231143 'ALTER TABLE "email" DROP CONSTRAINT IF EXISTS "fk_email_config_76a9dc71"' ,
1144+ 'CREATE INDEX IF NOT EXISTS "idx_email_company_1c9234" ON "email" ("company")' ,
1145+ 'DROP INDEX IF EXISTS "uid_email_company_1c9234"' ,
11241146 'ALTER TABLE "product" ADD "uuid" INT NOT NULL UNIQUE' ,
11251147 'CREATE UNIQUE INDEX IF NOT EXISTS "uid_product_uuid_d33c18" ON "product" ("uuid")' ,
11261148 'ALTER TABLE "product" ALTER COLUMN "view_num" DROP DEFAULT' ,
0 commit comments