種子資料管理指南
概述
電商管理平台採用分離式種子資料架構,區分生產環境核心資料與開發測試資料,確保不同環境的資料管理更加精確和安全。
檔案架構
檔案結構
supabase/
├── seed-core.sql # 生產環境核心預設資料
├── seed-test.sql # 開發測試用資料
└── seed.sql # 整合檔案 (向後相容)檔案用途
| 檔案 | 環境 | 用途 | 內容 |
|---|---|---|---|
seed-core.sql | Production/Development | 系統核心資料 | 系統運作必需的基礎資料 |
seed-test.sql | Development Only | 測試開發資料 | 基於核心資料的測試範例 |
seed.sql | Legacy | 向後相容 | 整合所有資料的完整檔案 |
核心預設資料 (seed-core.sql)
包含內容
系統設定資料
- 回應時間閾值參數
- 系統基礎配置參數
- 時區和地區設定
系統用戶
- 系統機器人用戶 (
00000000-0000-0000-0000-000000000000) - 用於系統執行權限和自動化任務
- 系統機器人用戶 (
RFM 客戶分群對應
- 完整的 RFM 分析分群規則 (18種客戶類型)
- 支援客戶生命週期分析
預設頭像資料
- 15個預設頭像檔案路徑
- 用戶註冊時隨機分配
角色權限體系
- 基本角色定義 (super_admin, admin, manager, staff, support, viewer)
- 權限群組結構 (10個業務群組)
- 基礎權限配置 (40+個具體權限)
系統預設產品分類
- 1個通用預設分類
- 可由管理員依業務需求自訂
- 避免業務特定的分類綁定
通知系統核心模板
- 5個系統必要模板 (訂單、庫存相關)
- 支援智能建議完成邏輯
- 系統保護機制確保穩定性
系統分析基礎資料
- 台灣國定假日 (2024-2025年,24筆)
- 支援假期效果分析和業務智能分析
- 自動與 dim_date 表同步
Super Admin 保護系統
- 自動權限分配機制
- 完整的管理員保護邏輯
特色
- ✅ 生產就緒: 所有資料適用於生產環境
- ✅ 完整性: 涵蓋系統運作所需的全部基礎資料
- ✅ 安全性: 包含完整的權限保護機制
- ✅ 在地化: 符合台灣市場的業務需求
🧪 測試資料 (seed-test.sql)
包含內容
測試行銷活動 (20筆)
- 2025年1月至7月的完整活動規劃
- 涵蓋季節性、節慶、會員專屬等多種類型
測試產品分類 (10個)
- 台灣電商市場的實用分類架構
- 包含電子產品、服飾配件、居家生活、美妝保養等
- 繁體中文描述與英文翻譯
測試產品資料 (20筆)
- 基於測試分類的真實產品範例
- 涵蓋不同價位和類別的商品組合
測試庫存資料
- 基於測試產品自動生成
- 包含多種庫存狀態範例
測試客戶資料 (10筆)
- 台灣地區真實地址範例
- 支援 RFM 分析測試
測試訂單資料 (10筆)
- 完整的訂單生命週期狀態
- 包含訂單項目和支付資訊
測試通知記錄
- 通知系統運作範例
- 不同優先級和類型的通知
漏斗事件資料
- 轉換分析測試資料
- 完整的用戶行為軌跡
依賴關係
⚠️ 重要: seed-test.sql 必須在 seed-core.sql 之後執行,因為測試資料依賴核心資料中的:
- 系統預設分類 (作為依賴基礎)
- 系統用戶 ID
- 權限和角色結構
⚙️ 環境配置
Production 環境
toml
# supabase/config.toml
[db.seed]
enabled = true
sql_paths = ["./seed-core.sql"]特點:
- 僅載入系統運作必需的核心資料
- 資料量最小,啟動速度快
- 適合生產環境的安全需求
Development 環境
toml
# supabase/config.toml
[db.seed]
enabled = true
sql_paths = ["./seed-core.sql", "./seed-test.sql"]特點:
- 載入核心資料 + 豐富的測試資料
- 支援完整的功能開發和測試
- 提供真實的業務場景模擬
Legacy 相容
toml
# supabase/config.toml
[db.seed]
enabled = true
sql_paths = ["./seed.sql"]特點:
- 向後相容現有設定
- 包含所有資料的整合檔案
- 逐步遷移到新架構時使用
使用指南
初始化空資料庫
Production 環境:
bash
# 僅載入核心資料
supabase db reset
# 或手動執行
psql -f supabase/seed-core.sqlDevelopment 環境:
bash
# 載入核心資料 + 測試資料
supabase db reset
# 或手動執行
psql -f supabase/seed-core.sql
psql -f supabase/seed-test.sql檔案維護
新增系統必要資料
➡️ 編輯 seed-core.sql
- 系統配置參數
- 新的權限定義
- 必要的參考資料
新增測試範例
➡️ 編輯 seed-test.sql
- 測試用的業務資料
- 功能驗證資料
- 效能測試資料
保持同步
- 核心資料變更時,檢查測試資料是否需要更新
- 測試資料應該基於最新的核心資料結構
資料統計
核心資料量
- 系統設定: 7 項
- RFM 分群: 50+ 規則
- 預設頭像: 15 個
- 系統預設分類: 1 個 (可自訂)
- 權限體系: 6 角色 + 10 群組 + 40+ 權限
- 通知模板: 5 個核心模板
- 台灣國定假日: 24 筆 (2024-2025)
測試資料量
- 行銷活動: 20 筆
- 產品分類: 10 個 (台灣電商場景)
- 測試產品: 20 筆
- 測試客戶: 10 筆
- 測試訂單: 10 筆
- 庫存記錄: 20 筆
- 通知記錄: 3 筆
🚨 注意事項
安全提醒
- 生產環境: 僅使用
seed-core.sql,避免載入測試資料 - 密碼安全: Super Admin 預設密碼必須在首次登入後立即更改
- 資料清理: 定期清理開發環境的測試資料
效能考量
- 核心資料: 設計為高效載入,適合頻繁重置
- 測試資料: 包含較多資料,載入時間較長
- 索引優化: 核心資料已考慮查詢效能優化
維護建議
- 版本控制: 所有種子資料檔案納入版本控制
- 備份策略: 定期備份種子資料檔案
- 文檔同步: 資料結構變更時同步更新文檔