name: sql-migration-manager description: 負責管理資料庫增量更新 (SQL Migrations)。當有新技能上架或現有技能內容異動時,負責產出增量 SQL 指令,不再改動 init_skills.sql。
SQL Migration Manager (資料庫遷移管理)
此技能定義了如何為 SKILLS_All-in-one 平台產生增量資料庫更新指令,並將其集中記錄於單一 SQL 檔案中,確保異動軌跡清晰且易於追蹤。
🚀 核心工作流 (Migration Workflow)
Step 1: 判定異動類型 (Identify Action)
-
INSERT (新增):當
skill-manager執行Onboard階段時。 -
UPDATE (更新):當
skill-updater偵測到版本差異並執行Update階段時。
Step 2: 產出 SQL 語法 (Generate SQL)
根據 database/init_skills.sql 的資料表結構,生成對應的 SQL。
-
新增技能範本:
INSERT INTO Skill (id, name, nameZh, description, descriptionZh, author, category, tags, downloadCount, createdAt, version, githubUrl, folderName) VALUES ({id}, '{name}', '{nameZh}', '{description}', '{descriptionZh}', '{author}', '{category}', '{tags}', 0, '{today}', '{version}', '{githubUrl}', '{folderName}'); -
更新技能範本 (僅針對變更欄位):
UPDATE Skill SET version = '{new_version}', description = '{new_desc}', descriptionZh = '{new_desc_zh}', updatedAt = '{today}' WHERE name = '{name}';
Step 3: 更新增量 SQL 檔案 (File Prepend)
-
目標檔案:
database/incremental_updates.sql。 -
寫入邏輯 (Prepending):
- AI Agent 必須將新的 SQL 指令插入到檔案的 最頂部 (Top)。
-
日期分組:若當前日期與檔案頂部日期不同,需插入新的日期標籤(如
--YYYY/MM/DD)。 - 排序:最新的異動日期應出現在檔案最上方。
範例結構:
--2026/03/11
INSERT INTO Skill ... (新異動)
--2026/03/09
INSERT INTO Skill ... (舊異動)
UPDATE Skill SET ...
🚦 規則與限制 (Guardrails)
- 禁止修改 init_skills.sql:該檔案目前僅作為「初始環境建立備份」,不應手動或自動修改。
-
ID 唯一性檢查:在產出
INSERT語句前,必須讀取src/data/skills.ts,抓取最新的id,並確保 ID 沒有重複。 -
JSON 轉義:處理
tags欄位時,必須確保 JSON 字串內的引號已正確轉義。 -
編碼保護:寫入
incremental_updates.sql時,必須確保為 UTF-8 (No BOM)。
📝 執行紀錄範本
- Migration: 已將 SQL 異動記錄至
database/incremental_updates.sql(日期標籤: --2026/03/09)。
chat Comments (0)
Sign in to join the discussion and leave a comment.
Skill Details
GitHub Stars
16
GitHub Forks
1
Created
Mar 2026
Last Updated
3 months ago
tools
tools system admin
Related Skills
Build your own?
Join 12,000+ developers contributing to the Claude ecosystem.
No comments yet. Be the first to share your thoughts!