Exclude models.Aerich.

Add init record when init-db.
This commit is contained in:
long2ice 2020-05-22 11:59:03 +08:00
parent bab5ebf2f0
commit c01d2993e0
5 changed files with 36 additions and 5 deletions

View File

@ -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.

View File

@ -1 +1 @@
__version__ = "0.1.6"
__version__ = "0.1.7"

View File

@ -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)

View File

@ -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:

View File

@ -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>"]