Fix default function when migrate. (#147)
This commit is contained in:
@@ -49,11 +49,7 @@ def coro(f):
|
||||
@click.group(context_settings={"help_option_names": ["-h", "--help"]})
|
||||
@click.version_option(__version__, "-V", "--version")
|
||||
@click.option(
|
||||
"-c",
|
||||
"--config",
|
||||
default="aerich.ini",
|
||||
show_default=True,
|
||||
help="Config file.",
|
||||
"-c", "--config", default="aerich.ini", show_default=True, help="Config file.",
|
||||
)
|
||||
@click.option("--app", required=False, help="Tortoise-ORM app name.")
|
||||
@click.option(
|
||||
@@ -122,9 +118,7 @@ async def upgrade(ctx: Context):
|
||||
for upgrade_query in upgrade_query_list:
|
||||
await conn.execute_script(upgrade_query)
|
||||
await Aerich.create(
|
||||
version=version_file,
|
||||
app=app,
|
||||
content=get_models_describe(app),
|
||||
version=version_file, app=app, content=get_models_describe(app),
|
||||
)
|
||||
click.secho(f"Success upgrade {version_file}", fg=Color.green)
|
||||
migrated = True
|
||||
@@ -218,17 +212,12 @@ async def history(ctx: Context):
|
||||
help="Tortoise-ORM config module dict variable, like settings.TORTOISE_ORM.",
|
||||
)
|
||||
@click.option(
|
||||
"--location",
|
||||
default="./migrations",
|
||||
show_default=True,
|
||||
help="Migrate store location.",
|
||||
"--location", default="./migrations", show_default=True, help="Migrate store location.",
|
||||
)
|
||||
@click.pass_context
|
||||
@coro
|
||||
async def init(
|
||||
ctx: Context,
|
||||
tortoise_orm,
|
||||
location,
|
||||
ctx: Context, tortoise_orm, location,
|
||||
):
|
||||
config_file = ctx.obj["config_file"]
|
||||
name = ctx.obj["name"]
|
||||
@@ -280,9 +269,7 @@ async def init_db(ctx: Context, safe):
|
||||
|
||||
version = await Migrate.generate_version()
|
||||
await Aerich.create(
|
||||
version=version,
|
||||
app=app,
|
||||
content=get_models_describe(app),
|
||||
version=version, app=app, content=get_models_describe(app),
|
||||
)
|
||||
content = {
|
||||
"upgrade": [schema],
|
||||
@@ -293,11 +280,7 @@ async def init_db(ctx: Context, safe):
|
||||
|
||||
@cli.command(help="Introspects the database tables to standard output as TortoiseORM model.")
|
||||
@click.option(
|
||||
"-t",
|
||||
"--table",
|
||||
help="Which tables to inspect.",
|
||||
multiple=True,
|
||||
required=False,
|
||||
"-t", "--table", help="Which tables to inspect.", multiple=True, required=False,
|
||||
)
|
||||
@click.pass_context
|
||||
@coro
|
||||
|
||||
@@ -78,7 +78,11 @@ class BaseDDL:
|
||||
auto_now_add = field_describe.get("auto_now_add", False)
|
||||
auto_now = field_describe.get("auto_now", False)
|
||||
if default is not None or auto_now_add:
|
||||
if field_describe.get("field_type") in ["UUIDField", "TextField", "JSONField"] or is_default_function(default):
|
||||
if field_describe.get("field_type") in [
|
||||
"UUIDField",
|
||||
"TextField",
|
||||
"JSONField",
|
||||
] or is_default_function(default):
|
||||
default = ""
|
||||
else:
|
||||
try:
|
||||
@@ -111,9 +115,7 @@ class BaseDDL:
|
||||
nullable="NOT NULL" if not field_describe.get("nullable") else "",
|
||||
unique="UNIQUE" if field_describe.get("unique") else "",
|
||||
comment=self.schema_generator._column_comment_generator(
|
||||
table=db_table,
|
||||
column=db_column,
|
||||
comment=field_describe.get("description"),
|
||||
table=db_table, column=db_column, comment=field_describe.get("description"),
|
||||
)
|
||||
if description
|
||||
else "",
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from typing import Dict, List, Optional, Tuple, Type
|
||||
@@ -238,14 +237,12 @@ class Migrate:
|
||||
# add unique_together
|
||||
for index in new_unique_together.difference(old_unique_together):
|
||||
cls._add_operator(
|
||||
cls._add_index(model, index, True),
|
||||
upgrade,
|
||||
cls._add_index(model, index, True), upgrade,
|
||||
)
|
||||
# remove unique_together
|
||||
for index in old_unique_together.difference(new_unique_together):
|
||||
cls._add_operator(
|
||||
cls._drop_index(model, index, True),
|
||||
upgrade,
|
||||
cls._drop_index(model, index, True), upgrade,
|
||||
)
|
||||
|
||||
old_data_fields = old_model_describe.get("data_fields")
|
||||
@@ -269,11 +266,7 @@ class Migrate:
|
||||
# rename field
|
||||
if (
|
||||
changes[0]
|
||||
== (
|
||||
"change",
|
||||
"name",
|
||||
(old_data_field_name, new_data_field_name),
|
||||
)
|
||||
== ("change", "name", (old_data_field_name, new_data_field_name),)
|
||||
and changes[1]
|
||||
== (
|
||||
"change",
|
||||
@@ -304,21 +297,15 @@ class Migrate:
|
||||
and cls._db_version.startswith("5.")
|
||||
):
|
||||
cls._add_operator(
|
||||
cls._modify_field(model, new_data_field),
|
||||
upgrade,
|
||||
cls._modify_field(model, new_data_field), upgrade,
|
||||
)
|
||||
else:
|
||||
cls._add_operator(
|
||||
cls._rename_field(model, *changes[1][2]),
|
||||
upgrade,
|
||||
cls._rename_field(model, *changes[1][2]), upgrade,
|
||||
)
|
||||
if not is_rename:
|
||||
cls._add_operator(
|
||||
cls._add_field(
|
||||
model,
|
||||
new_data_field,
|
||||
),
|
||||
upgrade,
|
||||
cls._add_field(model, new_data_field,), upgrade,
|
||||
)
|
||||
# remove fields
|
||||
for old_data_field_name in set(old_data_fields_name).difference(
|
||||
@@ -388,13 +375,11 @@ class Migrate:
|
||||
unique = new_data_field.get("unique")
|
||||
if old_new[0] is False and old_new[1] is True:
|
||||
cls._add_operator(
|
||||
cls._add_index(model, (field_name,), unique),
|
||||
upgrade,
|
||||
cls._add_index(model, (field_name,), unique), upgrade,
|
||||
)
|
||||
else:
|
||||
cls._add_operator(
|
||||
cls._drop_index(model, (field_name,), unique),
|
||||
upgrade,
|
||||
cls._drop_index(model, (field_name,), unique), upgrade,
|
||||
)
|
||||
elif option == "db_field_types.":
|
||||
# continue since repeated with others
|
||||
@@ -416,8 +401,7 @@ class Migrate:
|
||||
else:
|
||||
# modify column
|
||||
cls._add_operator(
|
||||
cls._modify_field(model, new_data_field),
|
||||
upgrade,
|
||||
cls._modify_field(model, new_data_field), upgrade,
|
||||
)
|
||||
|
||||
for old_model in old_models:
|
||||
|
||||
@@ -17,8 +17,7 @@ def get_app_connection_name(config, app_name: str) -> str:
|
||||
if app:
|
||||
return app.get("default_connection", "default")
|
||||
raise BadOptionUsage(
|
||||
option_name="--app",
|
||||
message=f'Can\'t get app named "{app_name}"',
|
||||
option_name="--app", message=f'Can\'t get app named "{app_name}"',
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user