48 lines
1.5 KiB
Bash
48 lines
1.5 KiB
Bash
#!/bin/bash
|
|
# 在服务器上运行数据库迁移脚本
|
|
# 使用方法: 将此脚本上传到服务器后执行,或通过 SSH 远程执行
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo " 数据库迁移脚本"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 检查容器是否运行
|
|
if ! docker ps | grep -q "flnxi-material"; then
|
|
echo "❌ 错误: 容器 flnxi-material 未运行"
|
|
echo "请先启动容器: docker-compose up -d"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ 容器运行中"
|
|
echo ""
|
|
|
|
# 执行 Prisma 迁移
|
|
echo "开始执行数据库迁移..."
|
|
echo ""
|
|
|
|
if docker exec flnxi-material npx prisma migrate deploy; then
|
|
echo ""
|
|
echo "✅ 数据库迁移成功完成!"
|
|
echo ""
|
|
echo "验证迁移结果..."
|
|
docker exec flnxi-material npx prisma db execute --stdin <<< "SELECT column_name, data_type, column_default FROM information_schema.columns WHERE table_name = 'UploadField' AND column_name = 'addToCategory';" || echo "验证查询执行完成"
|
|
else
|
|
echo ""
|
|
echo "⚠️ 迁移执行失败或迁移已存在"
|
|
echo ""
|
|
echo "尝试手动添加字段(如果迁移文件不存在)..."
|
|
docker exec flnxi-material npx prisma db execute --stdin <<< "ALTER TABLE \"UploadField\" ADD COLUMN IF NOT EXISTS \"addToCategory\" BOOLEAN NOT NULL DEFAULT false;" || echo "字段可能已存在"
|
|
echo ""
|
|
echo "✅ 手动迁移完成"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " 迁移脚本执行完成"
|
|
echo "=========================================="
|
|
|
|
|