feat: 切换数据库至 PostgreSQL、支持环境变量

未来计划支持多种数据库,从 PostgreSQL 开始!
支持从环境变量读取启动设置,添加 nyahome env 命令用来持久化环境变量。

BREAKING CHANGE: 切换开发阶段的数据库,从 SQLite 到 PostgreSQL。
This commit is contained in:
2026-05-28 16:12:35 +08:00
parent 21cb4ee8c1
commit d62a9d9304
7 changed files with 155 additions and 13 deletions
+17 -9
View File
@@ -6,13 +6,13 @@
from typing import Annotated
import typer
from rich.console import Console
from nyahome import __version__
from nyahome.cli.cli import console
from nyahome.cli.cli_env import ENV_PATH, env_app
console = Console()
app = typer.Typer(
name="Nya Home",
name="NyaHome",
help="🌸 为你而存在的故事之家 ~",
rich_markup_mode="rich",
no_args_is_help=True,
@@ -21,7 +21,7 @@ app = typer.Typer(
def version_callback(value: bool = False) -> None:
if value:
console.print(f"[green]Nya Home[/green] version {__version__}")
console.print(f"[green]NyaHome[/green] version {__version__}")
@app.callback(invoke_without_command=True)
@@ -35,21 +35,26 @@ def main(
is_eager=True,
),
) -> None:
console.print("[bright_black]Nya Home 仍然处于极早期的阶段。如果遇到任何问题,请告诉芒果帆帆喵![/bright_black]")
console.print("[bright_black]NyaHome 仍然处于极早期的阶段。如果遇到任何问题,请告诉芒果帆帆喵![/bright_black]")
@app.command()
def run() -> None:
"""
运行 Nya Home。
运行 NyaHome。
"""
import os
import uvicorn
from dotenv import load_dotenv
load_dotenv(ENV_PATH)
uvicorn.run(
"nyahome.server:app",
reload=False,
host="0.0.0.0",
port=9000,
reload=os.getenv("NYAHOME_UVICORN_RELOAD", "false") in ["True", "true", "1"],
host=os.getenv("NYAHOME_UVICORN_HOST", "0.0.0.0"),
port=int(os.getenv("NYAHOME_UVICORN_PORT", "9000")),
timeout_graceful_shutdown=2,
log_config="logging.yaml",
log_level="debug",
@@ -69,5 +74,8 @@ def openapi(
console.print(f"[cyan]已经保存 openapi.json 到 {path} 。[/cyan]")
app.add_typer(env_app, name="env", no_args_is_help=True, help="设置 NyaHome 应用的环境变量。")
if __name__ == "__main__":
app()