新增:半自动履约工作台与虎牙客户授权流程

- 新增 153 半自动履约迁移、后台任务接口与客户履约接口
- 接入虎牙 Connector 登录会话、绑定与一次性 CK 注入票据
- 新增后台半自动履约页面和客户履约入口
- 完善手工履约配置、成本确认事务与运行时连接器配置
- 同步权威文档、环境示例、部署脚本和迁移展示逻辑
This commit is contained in:
yml2213
2026-11-09 15:29:20 +08:00
parent 4159a435d5
commit cb9538a775
38 changed files with 3697 additions and 30 deletions
+14 -4
View File
@@ -322,10 +322,20 @@ wait_for_health() {
print_applied_migrations() {
log "已应用数据库迁移"
local sql migrations
sql='SELECT COALESCE(filename, name) FROM schema_migrations ORDER BY COALESCE(filename, name);'
if migrations="$("${COMPOSE_CMD[@]}" exec -T postgres sh -lc 'psql -U "$POSTGRES_USER" -d "$POSTGRES_DB" -Atc "$1"' sh "${sql}" 2>&1)"; then
local migrations
# 必须从后端真实 DATABASE_URL 读取,不能固定用 postgres 容器的 POSTGRES_DB:
# 本地测试库可能通过 DATABASE_URL 指向独立数据库(例如 order_site_test)。
if migrations="$("${COMPOSE_CMD[@]}" exec -T backend node --import tsx --input-type=module -e '
const { query, closeDb } = await import("./src/db/client.ts");
try {
const result = await query(
"SELECT COALESCE(filename, name) AS name FROM schema_migrations ORDER BY COALESCE(filename, name)"
);
console.log(result.rows.map((row) => row.name).join("\n"));
} finally {
await closeDb();
}
' 2>&1)"; then
printf '%s\n' "${migrations:-"(无迁移记录)"}"
return
fi