调整文档路径
This commit is contained in:
+57
@@ -0,0 +1,57 @@
|
||||
"""初始化 mcp_auth 库 + 建表(一次性脚本)。
|
||||
|
||||
用法:
|
||||
# 开发库(47.101.220.40)
|
||||
python seed.py --host 47.101.220.40 --user postgres --password digiwin
|
||||
|
||||
# 生产库(10.100.154.100)
|
||||
python seed.py --host 10.100.154.100 --user postgres --password digiwin
|
||||
|
||||
幂等:可重复执行,表已存在则跳过。
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import asyncio
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
import asyncpg
|
||||
|
||||
INIT_SQL_PATH = Path(__file__).resolve().parent.parent / "sql" / "init.sql"
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
parser = argparse.ArgumentParser(description="初始化 mcp_auth 库并建表")
|
||||
parser.add_argument("--host", default=os.getenv("MCP_AUTH_DB_HOST", "127.0.0.1"))
|
||||
parser.add_argument("--port", type=int, default=int(os.getenv("MCP_AUTH_DB_PORT", "5432")))
|
||||
parser.add_argument("--user", default=os.getenv("MCP_AUTH_DB_USER", "postgres"))
|
||||
parser.add_argument("--password", default=os.getenv("MCP_AUTH_DB_PASSWORD", "digiwin"))
|
||||
parser.add_argument("--db", default="mcp_auth")
|
||||
args = parser.parse_args()
|
||||
|
||||
# 1. 连超库建 mcp_auth(IF NOT EXISTS)
|
||||
sys_conn = await asyncpg.connect(
|
||||
host=args.host, port=args.port, user=args.user, password=args.password, database="postgres"
|
||||
)
|
||||
exists = await sys_conn.fetchval("SELECT 1 FROM pg_database WHERE datname = $1", args.db)
|
||||
if not exists:
|
||||
await sys_conn.execute(f'CREATE DATABASE "{args.db}"')
|
||||
print(f"[建库] {args.db} 已创建")
|
||||
else:
|
||||
print(f"[建库] {args.db} 已存在,跳过")
|
||||
await sys_conn.close()
|
||||
|
||||
# 2. 连 mcp_auth 建表
|
||||
conn = await asyncpg.connect(
|
||||
host=args.host, port=args.port, user=args.user, password=args.password, database=args.db
|
||||
)
|
||||
init_sql = INIT_SQL_PATH.read_text(encoding="utf-8")
|
||||
await conn.execute(init_sql)
|
||||
print("[建表] mcp_token / mcp_token_log / admin_user / mcp_service 已就绪")
|
||||
await conn.close()
|
||||
|
||||
print("\n[完成] 数据库初始化完毕,种子数据请通过管理后台操作")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user