2.9 KiB
2.9 KiB
資料庫遷移指南
🚨 問題解決
如果您遇到 SQL 語法錯誤,請按照以下步驟操作:
方法一:使用簡化版遷移(推薦)
# 1. 先執行基本表結構遷移
pnpm run migrate
# 2. 如果觸發器創建失敗,單獨執行觸發器遷移
pnpm run migrate:triggers
方法二:手動執行 SQL
如果自動遷移仍然失敗,請手動執行:
# 1. 連接到資料庫
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p
# 2. 選擇資料庫
USE db_AI_Platform;
# 3. 執行 SQL 文件
source database-schema-simple.sql;
方法三:分步執行
# 1. 測試資料庫連接
pnpm run test:db
# 2. 如果連接成功,執行遷移
pnpm run migrate
# 3. 檢查結果
pnpm run test:db
🔧 常見問題解決
問題 1: SQL 語法錯誤
錯誤: You have an error in your SQL syntax
解決方案:
- 使用
database-schema-simple.sql
而不是database-schema.sql
- 確保 MySQL 版本支援 JSON 類型(MySQL 5.7+)
- 檢查字符集設置
問題 2: 觸發器創建失敗
錯誤: Trigger creation failed
解決方案:
# 單獨執行觸發器遷移
pnpm run migrate:triggers
問題 3: 權限不足
錯誤: Access denied
解決方案:
- 檢查資料庫用戶權限
- 確保用戶有 CREATE、DROP、INSERT 權限
- 聯繫資料庫管理員
問題 4: 連接超時
錯誤: Connection timeout
解決方案:
- 檢查網路連接
- 確認資料庫服務正在運行
- 檢查防火牆設置
📋 遷移檢查清單
遷移前檢查
- 資料庫服務正在運行
- 網路連接正常
- 用戶權限充足
- 環境變數設置正確
遷移後檢查
- 所有表創建成功
- 觸發器創建成功
- 視圖創建成功
- 初始數據插入成功
驗證命令
# 檢查表數量
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p -e "SHOW TABLES;" db_AI_Platform
# 檢查觸發器
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p -e "SHOW TRIGGERS;" db_AI_Platform
# 檢查視圖
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p -e "SHOW FULL TABLES WHERE Table_type = 'VIEW';" db_AI_Platform
🆘 緊急恢復
如果遷移過程中出現問題:
1. 停止遷移
# 按 Ctrl+C 停止當前遷移
2. 檢查資料庫狀態
# 檢查是否有部分表創建
pnpm run test:db
3. 清理並重新開始
# 刪除所有表(慎用!)
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p -e "DROP DATABASE IF EXISTS db_AI_Platform; CREATE DATABASE db_AI_Platform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# 重新執行遷移
pnpm run migrate
📞 技術支援
如果問題仍然存在,請提供以下信息:
- 完整的錯誤訊息
- MySQL 版本
- 操作系統
- Node.js 版本
- 執行的命令
聯繫方式:
- 技術團隊
- 項目維護者
- 查看專案文檔