db-engineering

Installation
SKILL.md

十一條鐵則(不可妥協)

  1. 雙環境、雙資料庫 — development 與 production 兩套,各自連到不同的資料庫實例。兩者的資料、金鑰、URL 完全隔離。絕不可用「同一個實例 + 不同 schema」這種偷懶分法。

  2. 預設開發環境 — 任何啟動服務的指令、任何資料庫連線,預設一律連 development。連 production 必須是明確、刻意、有額外確認的動作。

  3. 改動只走 migration,並納入 git — 凡是能寫成 migration 的結構改動(建表、改欄位、加索引、trigger…)一律寫成 migration 檔放進 version control。絕對禁止直接在資料庫上改了結構卻沒留下 migration 檔。

  4. 優先軟刪除 — 刪除預設用軟刪(deleted_at 設時間戳),不做硬刪。硬刪只保留給法遵抹除、測試垃圾資料等明確情境。

  5. 正式環境神聖不可侵犯 — 開發完全基於 development 資料庫。production 資料庫不能亂改、亂刪、亂動,任何碰它的動作都必須先取得使用者明確同意。

  6. 全操作留稽核 log — 至少做兩層:

    • Tier 1 DB-layer audit(trigger 寫 audit_log,抓狀態變更)
    • Tier 2 Application/Request audit(middleware 寫 request_log,抓 IP/UA/path/status/actor/request_id)
    • 缺 Tier 2 等於失明(DB trigger 抓不到 IP/UA)
    • failed auth 也要走 request_log,不能靜默 401/403
    • 保留期照法規分流:業務憑證類至少 5 年、運算 cache 類 90 天、request_log 30-90 天
Installs
23
First Seen
Jul 8, 2026
db-engineering — timlai666/skills