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