b3d3fda744
新机器一键拉起数据库, 替代手动跑 psql 建用户建库的 6 行命令. 脚本特性: - 跨平台 Python (Windows/macOS/Linux 通吃, 不依赖 psql CLI 在 PATH 里) - 直接用 psycopg 连 PG, 不 shell out - 幂等: 用户已存在则重置密码, 库已存在则跳过, 重复跑不出错 - 业务密码自动 secrets.token_urlsafe(32) 强随机, 不让同事自己想 - 自动从 .env.example 复制出 .env 并写入 DATABASE_URL - .env 里已有 DATABASE_URL 会询问是否覆盖 (不无脑覆盖) - 跑完自动 alembic upgrade head, 一条命令到可用状态 - 全交互项支持环境变量提前指定 (PG_SUPER_PASS / APP_DB_PASS 等), CI 友好 同事新机器初始化流程从 6 步简化为 3 步: pip install -e . python scripts/init_postgres.py # 唯一手动输入项: postgres 超级用户密码 ./run.sh CREATE/ALTER USER 注意点: PG 不支持参数化密码绑定, 用 sql.Literal 内联, psycopg 自带的转义会处理引号和注入. docs/数据库迁移.md 拆出 PG / SQLite 两套初始化流程, PG 走脚本, SQLite 保留旧步骤 (本地临时回退用). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>