Change default config file from aerich.ini to pyproject.toml. (#197)
This commit is contained in:
@@ -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.")
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "0.5.8"
|
||||
__version__ = "0.5.9"
|
||||
|
||||
Reference in New Issue
Block a user