xfy
4ec8d72b66
feat(db): 启动期自动创建目标数据库
把 scripts/migrate.sh 里 CREATE DATABASE 的逻辑内置进二进制启动流程,
全新部署不再需要手动建库即可首次启动。
- src/db/pool.rs: 新增 ensure_database(),连接 postgres 维护库做
CREATE DATABASE IF NOT EXISTS 等价逻辑(SELECT EXISTS + CREATE)。
复用 MIGRATE_STARTUP_TIMEOUT_SECS 窗口应对 DB 起得慢;目标库名经
is_simple_ident 校验后才拼到 SQL,不合法的名字跳过让正常路径报错。
tokio_postgres::Config 不 Clone,故逐字段拷贝到新 Config。
- src/main.rs: 在 get_conn_for_startup() 之前调用 ensure_database(),
失败走统一的 tracing::error! + exit(1) 路径。
- src/db/migrate.rs: 文档注释补明目标库存在性由 ensure_database 上游保证。
新增 2 个 is_simple_ident 单测(392 → 402 tests)。
2026-06-25 11:46:50 +08:00
..
2026-06-25 11:46:50 +08:00
2026-06-18 15:41:31 +08:00
2026-06-25 11:46:50 +08:00
2026-06-18 11:05:22 +08:00