2.7 KiB
2.7 KiB
資料庫設置指南
環境變數設置
請在專案根目錄建立 .env.local
檔案,並加入以下內容:
# 資料庫配置
DB_HOST=mysql.theaken.com
DB_PORT=33306
DB_NAME=db_hr_assessment
DB_USER=hr_assessment
DB_PASSWORD=QFOts8FlibiI
# Next.js 環境變數
NEXTAUTH_SECRET=your-secret-key-here
NEXTAUTH_URL=http://localhost:3000
# 其他配置
NODE_ENV=development
安裝依賴
npm install
# 或
pnpm install
資料庫初始化
資料庫會在應用程式啟動時自動初始化,包括:
- 建立用戶表
- 建立預設管理員和測試用戶
預設用戶
- 管理員帳號: admin@company.com / admin123
- 測試用戶: user@company.com / user123
資料庫結構
users 表
欄位 | 類型 | 說明 |
---|---|---|
id | VARCHAR(36) | 用戶唯一識別碼 (UUID) |
name | VARCHAR(255) | 用戶姓名 |
VARCHAR(255) | 電子郵件 (唯一) | |
password | VARCHAR(255) | 密碼 |
department | VARCHAR(100) | 部門 |
role | ENUM('admin', 'user') | 角色 |
created_at | TIMESTAMP | 建立時間 |
updated_at | TIMESTAMP | 更新時間 |
logic_questions 表
欄位 | 類型 | 說明 |
---|---|---|
id | INT | 題目唯一識別碼 (AUTO_INCREMENT) |
question | TEXT | 題目內容 |
option_a | VARCHAR(500) | 選項 A |
option_b | VARCHAR(500) | 選項 B |
option_c | VARCHAR(500) | 選項 C |
option_d | VARCHAR(500) | 選項 D |
option_e | VARCHAR(500) | 選項 E |
correct_answer | ENUM('A', 'B', 'C', 'D', 'E') | 正確答案 |
explanation | TEXT | 解說 |
created_at | TIMESTAMP | 建立時間 |
手動種子資料庫
如果需要重新種子資料庫,可以執行:
npx tsx lib/database/seed.ts
密碼安全
- 所有密碼都使用 bcrypt 進行雜湊處理
- 雜湊強度:12 rounds
- 密碼在資料庫中以雜湊形式儲存,不會以明文顯示
可用的腳本
npm run test-db
- 測試資料庫連接npm run check-passwords
- 檢查密碼雜湊狀態npm run check-logic-questions
- 檢查邏輯思維題目npm run test-logic-flow
- 測試邏輯思維測試完整流程npm run update-logic-table
- 更新邏輯思維題目表結構(加入 E 選項)npm run reset-users
- 重新建立用戶數據(使用雜湊密碼)npm run seed-logic-questions
- 上傳邏輯思維題目到資料庫npm run test-login
- 測試登入功能(需要先啟動開發伺服器)
注意事項
- 確保資料庫伺服器可訪問
- 密碼已使用 bcrypt 進行雜湊處理,安全性更高
- 環境變數檔案
.env.local
不會被提交到版本控制 - 資料庫連接使用連接池以提高效能
- JWT 密碼已設置在環境變數中