优化任务状态投影和部署文档
This commit is contained in:
@@ -64,6 +64,23 @@ validate_env_file() {
|
||||
site_addr="$(read_env_value CADDY_SITE_ADDR)"
|
||||
[[ -n "${site_addr}" ]] || fail ".env 缺少 CADDY_SITE_ADDR。"
|
||||
HEALTH_URL="${site_addr%/}/health/ready"
|
||||
|
||||
validate_database_url_for_compose
|
||||
}
|
||||
|
||||
validate_database_url_for_compose() {
|
||||
local database_url
|
||||
database_url="$(read_env_value DATABASE_URL)"
|
||||
|
||||
if [[ -z "${database_url}" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "${database_url}" == *"@localhost:"* \
|
||||
|| "${database_url}" == *"@127.0.0.1:"* \
|
||||
|| "${database_url}" == *"@[::1]:"* ]]; then
|
||||
fail ".env 的 DATABASE_URL 当前指向本机地址。Docker 部署时后端容器内的 localhost 不是 postgres 容器,请改为 postgres 服务名或外部数据库地址。"
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_data_dir() {
|
||||
@@ -111,6 +128,27 @@ wait_for_health() {
|
||||
fail "部署已启动但健康检查未通过,请根据日志排查。"
|
||||
}
|
||||
|
||||
print_applied_migrations() {
|
||||
log "已应用数据库迁移"
|
||||
|
||||
local migrations
|
||||
if migrations="$(docker compose exec -T backend node --input-type=module -e '
|
||||
const { query, closeDb } = await import("./dist/db/client.js");
|
||||
try {
|
||||
const result = await query("SELECT filename FROM schema_migrations ORDER BY filename");
|
||||
console.log(result.rows.map((row) => row.filename).join("\n") || "(无迁移记录)");
|
||||
} finally {
|
||||
await closeDb();
|
||||
}
|
||||
' 2>&1)"; then
|
||||
printf '%s\n' "${migrations}"
|
||||
return
|
||||
fi
|
||||
|
||||
warn "读取迁移记录失败:"
|
||||
printf '%s\n' "${migrations}"
|
||||
}
|
||||
|
||||
print_diagnostics() {
|
||||
warn "当前容器状态:"
|
||||
docker compose ps || true
|
||||
@@ -128,6 +166,8 @@ print_diagnostics() {
|
||||
|
||||
warn "后端 ready 接口:"
|
||||
docker compose exec -T backend sh -lc 'curl -fsS http://127.0.0.1:3000/health/ready || true' || true
|
||||
|
||||
print_applied_migrations || true
|
||||
}
|
||||
|
||||
main() {
|
||||
@@ -139,6 +179,7 @@ main() {
|
||||
ensure_data_dir
|
||||
deploy_stack
|
||||
wait_for_health
|
||||
print_applied_migrations
|
||||
|
||||
log "部署完成"
|
||||
docker compose ps
|
||||
|
||||
Reference in New Issue
Block a user