flnxi-Wu/scripts/run-migration-on-server.sh
WuYongJie d1c6efc79d
Some checks failed
CI Check / check (push) Has been cancelled
feat: NAS 部署与 Harbor 推送流程
2025-12-03 14:39:06 +08:00

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 "=========================================="