資料庫遷移如果過於倉促可能會導致生產環境故障。此技能提供經過驗證的模式,用於在 Sequelize、TypeORM 和 Prisma 中進行安全的結構變更、資料轉換和回滾。
下載技能 ZIP
在 Claude 中上傳
前往 設定 → 功能 → 技能 → 上傳技能
開啟並開始使用
測試它
正在使用「database-migration」。 Provide a zero downtime plan to rename users.name to users.full_name
預期結果:
- 第一階段:在現有 name 欄位旁新增 full_name 欄位
- 第二階段:部署同時寫入兩個欄位的程式碼
- 第三階段:分批執行回填將 name 值複製到 full_name
- 第四階段:將應用程式讀取切換到 full_name 欄位
- 第五階段:驗證後,在單獨的部署中移除舊的 name 欄位
正在使用「database-migration」。 Create a checkpoint-based rollback strategy for migrating a full_address field
預期結果:
- 使用 CREATE TABLE AS SELECT 在遷移前建立備份表格
- 在每個批次後進行小批量遷移和驗證
- 失敗時,使用 DROP TABLE 和 CREATE TABLE AS SELECT 從備份還原
- 成功驗證後刪除備份表格
安全審計
安全The static analyzer flagged 42 potential issues, but all are false positives. SKILL.md contains only documentation and code examples for database migration patterns. The 'weak cryptographic algorithm' findings were triggered by text patterns in documentation describing migration operations. The 'Ruby/shell backtick execution' findings misidentified command-line comments as shell execution. No actual executable code, credential access, or network exfiltration patterns exist. This is static instructional content only.
風險因素
🌐 網路存取 (1)
⚙️ 外部命令 (25)
品質評分
你能建構什麼
零停機部署
規劃分階段遷移,使用藍綠部署策略在結構變更期間保持應用程式可用。
資料轉換
為大型資料集設計安全的資料回填和欄位重構,帶有基於檢查點的回滾選項。
ORM 遷移策略
比較在 Sequelize、TypeORM 和 Prisma 之間切換時的遷移方法,考慮兼容性因素。
試試這些提示
建立一個安全的遷移計劃,在 Sequelize 中新增一個帶有預設值的非空狀態欄位,包括回滾步驟和資料回填考量。
概述一個零停機程序,將 users.name 重新命名為 users.full_name,包括分階段部署、回填策略和清理步驟。
展示一個處理 TypeORM 中 MySQL 和 PostgreSQL 之間 JSON 類型差異的遷移方法,使用條件邏輯。
設計一個基於檢查點的回滾策略,用於將 full_address 欄位拆分為 street、city、state 和 zip 元件。
最佳實務
- 始終為每個遷移提供帶有正確 down() 方法的回滾步驟
- 在部署前於模擬生產環境的暫存資料上測試遷移
- 使用小型增量結構變更而非大型整體式遷移
避免
- 在驗證資料回填和應用程式兼容性之前刪除欄位
- 在沒有交易邊界或回滾計劃的情況下執行大型遷移
- 在轉換過程中忽略 NULL 值處理和外鍵約束影響
常見問題
支援哪些 ORM?
遷移有大小限制嗎?
可以與 CI 管線整合嗎?
它會存取我的資料庫或密鑰嗎?
如果遷移在中途失敗怎麼辦?
與遷移工具有何不同?
開發者詳情
作者
wshobson授權
MIT
儲存庫
https://github.com/wshobson/agents/tree/main/plugins/framework-migration/skills/database-migration引用
main
檔案結構
📄 SKILL.md