28 lines
676 B
Bash
28 lines
676 B
Bash
#!/usr/bin/env bash
|
||
# 一键迁移(Docker):在项目根目录执行
|
||
# 用法: bash deploy/scripts/migrate.sh 或 ./deploy/scripts/migrate.sh
|
||
|
||
set -e
|
||
cd "$(dirname "$0")/../.."
|
||
|
||
echo "[1/3] 启动数据库..."
|
||
docker compose up -d db
|
||
|
||
echo "[2/3] 等待数据库就绪..."
|
||
max=30
|
||
for i in $(seq 1 $max); do
|
||
if docker compose exec -T db pg_isready -U wecom -d wecom_ai 2>/dev/null; then
|
||
break
|
||
fi
|
||
if [ "$i" -eq "$max" ]; then
|
||
echo "数据库未在 ${max}s 内就绪,请检查 docker compose logs db"
|
||
exit 1
|
||
fi
|
||
sleep 1
|
||
done
|
||
|
||
echo "[3/3] 执行 Alembic 迁移..."
|
||
docker compose run --rm backend sh -c "alembic upgrade head"
|
||
|
||
echo "迁移完成。"
|