Skip to content

種子資料管理指南

概述

電商管理平台採用分離式種子資料架構,區分生產環境核心資料與開發測試資料,確保不同環境的資料管理更加精確和安全。

檔案架構

檔案結構

supabase/
├── seed-core.sql      # 生產環境核心預設資料
├── seed-test.sql      # 開發測試用資料
└── seed.sql          # 整合檔案 (向後相容)

檔案用途

檔案環境用途內容
seed-core.sqlProduction/Development系統核心資料系統運作必需的基礎資料
seed-test.sqlDevelopment Only測試開發資料基於核心資料的測試範例
seed.sqlLegacy向後相容整合所有資料的完整檔案

核心預設資料 (seed-core.sql)

包含內容

  1. 系統設定資料

    • 回應時間閾值參數
    • 系統基礎配置參數
    • 時區和地區設定
  2. 系統用戶

    • 系統機器人用戶 (00000000-0000-0000-0000-000000000000)
    • 用於系統執行權限和自動化任務
  3. RFM 客戶分群對應

    • 完整的 RFM 分析分群規則 (18種客戶類型)
    • 支援客戶生命週期分析
  4. 預設頭像資料

    • 15個預設頭像檔案路徑
    • 用戶註冊時隨機分配
  5. 角色權限體系

    • 基本角色定義 (super_admin, admin, manager, staff, support, viewer)
    • 權限群組結構 (10個業務群組)
    • 基礎權限配置 (40+個具體權限)
  6. 系統預設產品分類

    • 1個通用預設分類
    • 可由管理員依業務需求自訂
    • 避免業務特定的分類綁定
  7. 通知系統核心模板

    • 5個系統必要模板 (訂單、庫存相關)
    • 支援智能建議完成邏輯
    • 系統保護機制確保穩定性
  8. 系統分析基礎資料

    • 台灣國定假日 (2024-2025年,24筆)
    • 支援假期效果分析和業務智能分析
    • 自動與 dim_date 表同步
  9. Super Admin 保護系統

    • 自動權限分配機制
    • 完整的管理員保護邏輯

特色

  • 生產就緒: 所有資料適用於生產環境
  • 完整性: 涵蓋系統運作所需的全部基礎資料
  • 安全性: 包含完整的權限保護機制
  • 在地化: 符合台灣市場的業務需求

🧪 測試資料 (seed-test.sql)

包含內容

  1. 測試行銷活動 (20筆)

    • 2025年1月至7月的完整活動規劃
    • 涵蓋季節性、節慶、會員專屬等多種類型
  2. 測試產品分類 (10個)

    • 台灣電商市場的實用分類架構
    • 包含電子產品、服飾配件、居家生活、美妝保養等
    • 繁體中文描述與英文翻譯
  3. 測試產品資料 (20筆)

    • 基於測試分類的真實產品範例
    • 涵蓋不同價位和類別的商品組合
  4. 測試庫存資料

    • 基於測試產品自動生成
    • 包含多種庫存狀態範例
  5. 測試客戶資料 (10筆)

    • 台灣地區真實地址範例
    • 支援 RFM 分析測試
  6. 測試訂單資料 (10筆)

    • 完整的訂單生命週期狀態
    • 包含訂單項目和支付資訊
  7. 測試通知記錄

    • 通知系統運作範例
    • 不同優先級和類型的通知
  8. 漏斗事件資料

    • 轉換分析測試資料
    • 完整的用戶行為軌跡

依賴關係

⚠️ 重要: 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.sql

Development 環境:

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 筆

🚨 注意事項

安全提醒

  1. 生產環境: 僅使用 seed-core.sql,避免載入測試資料
  2. 密碼安全: Super Admin 預設密碼必須在首次登入後立即更改
  3. 資料清理: 定期清理開發環境的測試資料

效能考量

  1. 核心資料: 設計為高效載入,適合頻繁重置
  2. 測試資料: 包含較多資料,載入時間較長
  3. 索引優化: 核心資料已考慮查詢效能優化

維護建議

  1. 版本控制: 所有種子資料檔案納入版本控制
  2. 備份策略: 定期備份種子資料檔案
  3. 文檔同步: 資料結構變更時同步更新文檔

相關資源