Fix drop table
This commit is contained in:
parent
048e428eac
commit
abfa60133f
@ -34,8 +34,8 @@ class BaseDDL:
|
|||||||
def create_table(self, model: "Type[Model]"):
|
def create_table(self, model: "Type[Model]"):
|
||||||
return self.schema_generator._get_table_sql(model, True)["table_creation_string"]
|
return self.schema_generator._get_table_sql(model, True)["table_creation_string"]
|
||||||
|
|
||||||
def drop_table(self, model: "Type[Model]"):
|
def drop_table(self, table_name: str):
|
||||||
return self._DROP_TABLE_TEMPLATE.format(table_name=model._meta.db_table)
|
return self._DROP_TABLE_TEMPLATE.format(table_name=table_name)
|
||||||
|
|
||||||
def create_m2m(
|
def create_m2m(
|
||||||
self, model: "Type[Model]", field_describe: dict, reference_table_describe: dict
|
self, model: "Type[Model]", field_describe: dict, reference_table_describe: dict
|
||||||
@ -199,7 +199,7 @@ class BaseDDL:
|
|||||||
table_name=db_table,
|
table_name=db_table,
|
||||||
fk_name=fk_name,
|
fk_name=fk_name,
|
||||||
db_column=db_column,
|
db_column=db_column,
|
||||||
table=field_describe.get("name"),
|
table=reference_table_describe.get("table"),
|
||||||
field=reference_id,
|
field=reference_id,
|
||||||
on_delete=field_describe.get("on_delete"),
|
on_delete=field_describe.get("on_delete"),
|
||||||
)
|
)
|
||||||
|
@ -169,12 +169,17 @@ class Migrate:
|
|||||||
model = cls._get_model(new_model_describe.get("name").split(".")[1])
|
model = cls._get_model(new_model_describe.get("name").split(".")[1])
|
||||||
|
|
||||||
if new_model_str not in old_models.keys():
|
if new_model_str not in old_models.keys():
|
||||||
cls._add_operator(cls.add_model(cls._get_model(new_model_str)), upgrade)
|
cls._add_operator(cls.add_model(model), upgrade)
|
||||||
else:
|
else:
|
||||||
old_model_describe = old_models.get(new_model_str)
|
old_model_describe = old_models.get(new_model_str)
|
||||||
|
|
||||||
old_unique_together = old_model_describe.get("unique_together")
|
old_unique_together = map(
|
||||||
new_unique_together = new_model_describe.get("unique_together")
|
lambda x: tuple(x), old_model_describe.get("unique_together")
|
||||||
|
)
|
||||||
|
new_unique_together = map(
|
||||||
|
lambda x: tuple(x), new_model_describe.get("unique_together")
|
||||||
|
)
|
||||||
|
|
||||||
old_pk_field = old_model_describe.get("pk_field")
|
old_pk_field = old_model_describe.get("pk_field")
|
||||||
new_pk_field = new_model_describe.get("pk_field")
|
new_pk_field = new_model_describe.get("pk_field")
|
||||||
# pk field
|
# pk field
|
||||||
@ -328,7 +333,7 @@ class Migrate:
|
|||||||
filter(lambda x: x.get("name") == new_fk_field_name, new_fk_fields)
|
filter(lambda x: x.get("name") == new_fk_field_name, new_fk_fields)
|
||||||
)
|
)
|
||||||
cls._add_operator(
|
cls._add_operator(
|
||||||
cls._add_fk(model, fk_field, old_models.get(fk_field.get("python_type"))),
|
cls._add_fk(model, fk_field, new_models.get(fk_field.get("python_type"))),
|
||||||
upgrade,
|
upgrade,
|
||||||
fk_m2m=True,
|
fk_m2m=True,
|
||||||
)
|
)
|
||||||
@ -381,15 +386,15 @@ class Migrate:
|
|||||||
|
|
||||||
for old_model in old_models:
|
for old_model in old_models:
|
||||||
if old_model not in new_models.keys():
|
if old_model not in new_models.keys():
|
||||||
cls._add_operator(cls.remove_model(cls._get_model(old_model)), upgrade)
|
cls._add_operator(cls.drop_model(old_models.get(old_model).get("table")), upgrade)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def add_model(cls, model: Type[Model]):
|
def add_model(cls, model: Type[Model]):
|
||||||
return cls.ddl.create_table(model)
|
return cls.ddl.create_table(model)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def remove_model(cls, model: Type[Model]):
|
def drop_model(cls, table_name: str):
|
||||||
return cls.ddl.drop_table(model)
|
return cls.ddl.drop_table(table_name)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create_m2m(cls, model: Type[Model], field_describe: dict, reference_table_describe: dict):
|
def create_m2m(cls, model: Type[Model], field_describe: dict, reference_table_describe: dict):
|
||||||
|
2
poetry.lock
generated
2
poetry.lock
generated
@ -635,7 +635,6 @@ click = [
|
|||||||
]
|
]
|
||||||
colorama = [
|
colorama = [
|
||||||
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
{file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"},
|
||||||
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
|
||||||
]
|
]
|
||||||
ddlparse = [
|
ddlparse = [
|
||||||
{file = "ddlparse-1.9.0-py3-none-any.whl", hash = "sha256:a7962615a9325be7d0f182cbe34011e6283996473fb98c784c6f675b9783bc18"},
|
{file = "ddlparse-1.9.0-py3-none-any.whl", hash = "sha256:a7962615a9325be7d0f182cbe34011e6283996473fb98c784c6f675b9783bc18"},
|
||||||
@ -666,7 +665,6 @@ importlib-metadata = [
|
|||||||
{file = "importlib_metadata-3.4.0.tar.gz", hash = "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"},
|
{file = "importlib_metadata-3.4.0.tar.gz", hash = "sha256:fa5daa4477a7414ae34e95942e4dd07f62adf589143c875c133c1e53c4eff38d"},
|
||||||
]
|
]
|
||||||
iniconfig = [
|
iniconfig = [
|
||||||
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
|
|
||||||
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
|
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
|
||||||
]
|
]
|
||||||
iso8601 = [
|
iso8601 = [
|
||||||
|
@ -50,7 +50,7 @@ COMMENT ON COLUMN "category"."user_id" IS 'User';"""
|
|||||||
|
|
||||||
|
|
||||||
def test_drop_table():
|
def test_drop_table():
|
||||||
ret = Migrate.ddl.drop_table(Category)
|
ret = Migrate.ddl.drop_table(Category._meta.db_table)
|
||||||
if isinstance(Migrate.ddl, MysqlDDL):
|
if isinstance(Migrate.ddl, MysqlDDL):
|
||||||
assert ret == "DROP TABLE IF EXISTS `category`"
|
assert ret == "DROP TABLE IF EXISTS `category`"
|
||||||
else:
|
else:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user