Change default config file from aerich.ini to pyproject.toml. (#197)

This commit is contained in:
long2ice
2021-09-27 11:05:20 +08:00
parent 661f241dac
commit 24c1f4cb7d
5 changed files with 116 additions and 78 deletions

View File

@@ -1,11 +1,11 @@
import asyncio
import os
from configparser import ConfigParser
from functools import wraps
from pathlib import Path
from typing import List
import click
import tomlkit
from click import Context, UsageError
from tortoise import Tortoise
@@ -16,8 +16,6 @@ from . import Command
from .enums import Color
from .version import __version__
parser = ConfigParser()
CONFIG_DEFAULT_VALUES = {
"src_folder": ".",
}
@@ -43,7 +41,7 @@ def coro(f):
@click.option(
"-c",
"--config",
default="aerich.ini",
default="pyproject.toml",
show_default=True,
help="Config file.",
)
@@ -51,7 +49,7 @@ def coro(f):
@click.option(
"-n",
"--name",
default="aerich",
default="tool.aerich",
show_default=True,
help="Name of section in .ini file to use for aerich config.",
)
@@ -66,11 +64,12 @@ async def cli(ctx: Context, config, app, name):
if invoked_subcommand != "init":
if not Path(config).exists():
raise UsageError("You must exec init first", ctx=ctx)
parser.read(config)
location = parser[name]["location"]
tortoise_orm = parser[name]["tortoise_orm"]
src_folder = parser[name].get("src_folder", CONFIG_DEFAULT_VALUES["src_folder"])
with open(config, "r") as f:
content = f.read()
doc = tomlkit.parse(content)
location = doc[name]["location"]
tortoise_orm = doc[name]["tortoise_orm"]
src_folder = doc[name].get("src_folder", CONFIG_DEFAULT_VALUES["src_folder"])
add_src_path(src_folder)
tortoise_config = get_tortoise_config(ctx, tortoise_orm)
app = app or list(tortoise_config.get("apps").keys())[0]
@@ -188,8 +187,6 @@ async def history(ctx: Context):
async def init(ctx: Context, tortoise_orm, location, src_folder):
config_file = ctx.obj["config_file"]
name = ctx.obj["name"]
if Path(config_file).exists():
return click.secho("Configuration file already created", fg=Color.yellow)
if os.path.isabs(src_folder):
src_folder = os.path.relpath(os.getcwd(), src_folder)
@@ -201,18 +198,22 @@ async def init(ctx: Context, tortoise_orm, location, src_folder):
add_src_path(src_folder)
get_tortoise_config(ctx, tortoise_orm)
parser.add_section(name)
parser.set(name, "tortoise_orm", tortoise_orm)
parser.set(name, "location", location)
parser.set(name, "src_folder", src_folder)
with open(config_file, "r") as f:
content = f.read()
doc = tomlkit.parse(content)
table = tomlkit.table()
table["tortoise_orm"] = tortoise_orm
table["location"] = location
table["src_folder"] = src_folder
doc[name] = table
with open(config_file, "w", encoding="utf-8") as f:
parser.write(f)
with open(config_file, "w") as f:
f.write(tomlkit.dumps(doc))
Path(location).mkdir(parents=True, exist_ok=True)
click.secho(f"Success create migrate location {location}", fg=Color.green)
click.secho(f"Success generate config file {config_file}", fg=Color.green)
click.secho(f"Success write config to {config_file}", fg=Color.green)
@cli.command(help="Generate schema and generate app migrate location.")

View File

@@ -1 +1 @@
__version__ = "0.5.8"
__version__ = "0.5.9"