#!/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 "=========================================="