整合資料庫、完成登入註冊忘記密碼功能
This commit is contained in:
143
MIGRATION_GUIDE.md
Normal file
143
MIGRATION_GUIDE.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# 資料庫遷移指南
|
||||
|
||||
## 🚨 問題解決
|
||||
|
||||
如果您遇到 SQL 語法錯誤,請按照以下步驟操作:
|
||||
|
||||
### 方法一:使用簡化版遷移(推薦)
|
||||
|
||||
```bash
|
||||
# 1. 先執行基本表結構遷移
|
||||
pnpm run migrate
|
||||
|
||||
# 2. 如果觸發器創建失敗,單獨執行觸發器遷移
|
||||
pnpm run migrate:triggers
|
||||
```
|
||||
|
||||
### 方法二:手動執行 SQL
|
||||
|
||||
如果自動遷移仍然失敗,請手動執行:
|
||||
|
||||
```bash
|
||||
# 1. 連接到資料庫
|
||||
mysql -h mysql.theaken.com -P 33306 -u AI_Platform -p
|
||||
|
||||
# 2. 選擇資料庫
|
||||
USE db_AI_Platform;
|
||||
|
||||
# 3. 執行 SQL 文件
|
||||
source database-schema-simple.sql;
|
||||
```
|
||||
|
||||
### 方法三:分步執行
|
||||
|
||||
```bash
|
||||
# 1. 測試資料庫連接
|
||||
pnpm run test:db
|
||||
|
||||
# 2. 如果連接成功,執行遷移
|
||||
pnpm run migrate
|
||||
|
||||
# 3. 檢查結果
|
||||
pnpm run test:db
|
||||
```
|
||||
|
||||
## 🔧 常見問題解決
|
||||
|
||||
### 問題 1: SQL 語法錯誤
|
||||
**錯誤**: `You have an error in your SQL syntax`
|
||||
|
||||
**解決方案**:
|
||||
1. 使用 `database-schema-simple.sql` 而不是 `database-schema.sql`
|
||||
2. 確保 MySQL 版本支援 JSON 類型(MySQL 5.7+)
|
||||
3. 檢查字符集設置
|
||||
|
||||
### 問題 2: 觸發器創建失敗
|
||||
**錯誤**: `Trigger creation failed`
|
||||
|
||||
**解決方案**:
|
||||
```bash
|
||||
# 單獨執行觸發器遷移
|
||||
pnpm run migrate:triggers
|
||||
```
|
||||
|
||||
### 問題 3: 權限不足
|
||||
**錯誤**: `Access denied`
|
||||
|
||||
**解決方案**:
|
||||
1. 檢查資料庫用戶權限
|
||||
2. 確保用戶有 CREATE、DROP、INSERT 權限
|
||||
3. 聯繫資料庫管理員
|
||||
|
||||
### 問題 4: 連接超時
|
||||
**錯誤**: `Connection timeout`
|
||||
|
||||
**解決方案**:
|
||||
1. 檢查網路連接
|
||||
2. 確認資料庫服務正在運行
|
||||
3. 檢查防火牆設置
|
||||
|
||||
## 📋 遷移檢查清單
|
||||
|
||||
### 遷移前檢查
|
||||
- [ ] 資料庫服務正在運行
|
||||
- [ ] 網路連接正常
|
||||
- [ ] 用戶權限充足
|
||||
- [ ] 環境變數設置正確
|
||||
|
||||
### 遷移後檢查
|
||||
- [ ] 所有表創建成功
|
||||
- [ ] 觸發器創建成功
|
||||
- [ ] 視圖創建成功
|
||||
- [ ] 初始數據插入成功
|
||||
|
||||
### 驗證命令
|
||||
```bash
|
||||
# 檢查表數量
|
||||
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. 停止遷移
|
||||
```bash
|
||||
# 按 Ctrl+C 停止當前遷移
|
||||
```
|
||||
|
||||
### 2. 檢查資料庫狀態
|
||||
```bash
|
||||
# 檢查是否有部分表創建
|
||||
pnpm run test:db
|
||||
```
|
||||
|
||||
### 3. 清理並重新開始
|
||||
```bash
|
||||
# 刪除所有表(慎用!)
|
||||
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
|
||||
```
|
||||
|
||||
## 📞 技術支援
|
||||
|
||||
如果問題仍然存在,請提供以下信息:
|
||||
|
||||
1. 完整的錯誤訊息
|
||||
2. MySQL 版本
|
||||
3. 操作系統
|
||||
4. Node.js 版本
|
||||
5. 執行的命令
|
||||
|
||||
聯繫方式:
|
||||
- 技術團隊
|
||||
- 項目維護者
|
||||
- 查看專案文檔
|
Reference in New Issue
Block a user