40 lines
1.0 KiB
Bash
40 lines
1.0 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "========================================="
|
|
echo "君鸿卡管系统 API 服务启动中..."
|
|
echo "========================================="
|
|
|
|
# 检查必要的环境变量
|
|
if [ -z "$DB_HOST" ]; then
|
|
echo "错误: DB_HOST 环境变量未设置"
|
|
exit 1
|
|
fi
|
|
|
|
# 构建数据库连接 URL
|
|
DB_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=${DB_SSLMODE}"
|
|
|
|
echo "检查数据库连接..."
|
|
# 等待数据库就绪(最多等待 30 秒)
|
|
for i in {1..30}; do
|
|
if migrate -path /app/migrations -database "$DB_URL" version > /dev/null 2>&1; then
|
|
echo "数据库连接成功"
|
|
break
|
|
fi
|
|
echo "等待数据库就绪... ($i/30)"
|
|
sleep 1
|
|
done
|
|
|
|
# 执行数据库迁移
|
|
echo "执行数据库迁移..."
|
|
if migrate -path /app/migrations -database "$DB_URL" up; then
|
|
echo "数据库迁移完成"
|
|
else
|
|
echo "警告: 数据库迁移失败或无新迁移"
|
|
fi
|
|
|
|
# 启动 API 服务
|
|
echo "启动 API 服务..."
|
|
echo "========================================="
|
|
exec /app/api
|