Exclude models.Aerich.
Add init record when init-db.
This commit is contained in:
parent
bab5ebf2f0
commit
c01d2993e0
@ -4,6 +4,15 @@ ChangeLog
|
||||
|
||||
0.1
|
||||
===
|
||||
0.1.7
|
||||
-----
|
||||
- Exclude models.Aerich.
|
||||
- Add init record when init-db.
|
||||
|
||||
0.1.6
|
||||
-----
|
||||
- update dependency_links
|
||||
|
||||
0.1.5
|
||||
-----
|
||||
- Add sqlite and postgres support.
|
||||
|
@ -1 +1 @@
|
||||
__version__ = "0.1.6"
|
||||
__version__ = "0.1.7"
|
||||
|
@ -8,6 +8,7 @@ import asyncclick as click
|
||||
from asyncclick import Context, UsageError
|
||||
from tortoise import ConfigurationError, Tortoise, generate_schema_for_client
|
||||
from tortoise.transactions import in_transaction
|
||||
from tortoise.utils import get_schema_sql
|
||||
|
||||
from aerich.migrate import Migrate
|
||||
from aerich.utils import get_app_connection, get_app_connection_name, get_tortoise_config
|
||||
@ -117,6 +118,8 @@ async def downgrade(ctx: Context):
|
||||
with open(file_path, "r") as f:
|
||||
content = json.load(f)
|
||||
downgrade_query_list = content.get("downgrade")
|
||||
if not downgrade_query_list:
|
||||
return click.secho(f"No downgrade item dound", fg=Color.yellow)
|
||||
for downgrade_query in downgrade_query_list:
|
||||
await conn.execute_query(downgrade_query)
|
||||
await last_version.delete()
|
||||
@ -198,6 +201,8 @@ async def init_db(ctx: Context, safe):
|
||||
if not os.path.isdir(dirname):
|
||||
os.mkdir(dirname)
|
||||
click.secho(f"Success create app migrate location {dirname}", fg=Color.green)
|
||||
else:
|
||||
return click.secho(f"Inited {app} already", fg=Color.yellow)
|
||||
|
||||
Migrate.write_old_models(config, app, location)
|
||||
|
||||
@ -205,6 +210,15 @@ async def init_db(ctx: Context, safe):
|
||||
connection = get_app_connection(config, app)
|
||||
await generate_schema_for_client(connection, safe)
|
||||
|
||||
schema = get_schema_sql(connection, safe)
|
||||
|
||||
version = await Migrate.generate_version()
|
||||
await Aerich.create(version=version, app=app)
|
||||
with open(os.path.join(dirname, version), "w") as f:
|
||||
content = {
|
||||
"upgrade": schema,
|
||||
}
|
||||
json.dump(content, f, ensure_ascii=False, indent=2)
|
||||
return click.secho(f'Success generate schema for app "{app}"', fg=Color.green)
|
||||
|
||||
|
||||
|
@ -78,15 +78,21 @@ class Migrate:
|
||||
async def _get_last_version_num(cls):
|
||||
last_version = await cls.get_last_version()
|
||||
if not last_version:
|
||||
return 0
|
||||
return None
|
||||
version = last_version.version
|
||||
return version.split("_")[0]
|
||||
|
||||
@classmethod
|
||||
async def _generate_diff_sql(cls, name):
|
||||
async def generate_version(cls, name=None):
|
||||
now = datetime.now().strftime("%Y%M%D%H%M%S").replace("/", "")
|
||||
last_version_num = await cls._get_last_version_num()
|
||||
version = f"{last_version_num + 1}_{now}_{name}.json"
|
||||
if last_version_num is None:
|
||||
return f"0_{now}_init.json"
|
||||
return f"{last_version_num + 1}_{now}_{name}.json"
|
||||
|
||||
@classmethod
|
||||
async def _generate_diff_sql(cls, name):
|
||||
version = await cls.generate_version(name)
|
||||
content = {
|
||||
"upgrade": cls.upgrade_operators,
|
||||
"downgrade": cls.downgrade_operators,
|
||||
@ -181,6 +187,8 @@ class Migrate:
|
||||
:param location:
|
||||
:return:
|
||||
"""
|
||||
cls.app = app
|
||||
|
||||
old_model_files = []
|
||||
models = config.get("apps").get(app).get("models")
|
||||
for model in models:
|
||||
|
@ -1,6 +1,6 @@
|
||||
[tool.poetry]
|
||||
name = "aerich"
|
||||
version = "0.1.6"
|
||||
version = "0.1.7"
|
||||
description = "A database migrations tool for Tortoise ORM."
|
||||
authors = ["long2ice <long2ice@gmail.com>"]
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user