dsh-db-migration:數據庫遷移 SQL 生成工具

在 DSH 工作流中,維護數據庫結構變更是常見需求。手動編寫 ALTER TABLE 或對比兩個 DDL 文件容易出錯且耗時。dsh-db-migration 旨在自動化這一過程,通過對比兩個 SQL DDL 文件來生成遷移腳本。

該插件由 uckkk 維護,是一個純 Node 實現、無網絡依賴的工具。它專注於檢測兩個 DDL 文件在表結構和列定義上的差異,並輸出相應的 ALTER TABLE 或 DROP TABLE 語句。

核心功能

該插件主要處理 DDL 層面的變更檢測與 SQL 生成:

  1. DDL 對比與統計:對比舊版/新版 DDL,返回結構差異統計以及生成的遷移 SQL。
  2. 表級變更:識別新增或刪除的表,生成 CREATE TABLE 或 DROP TABLE 語句。
  3. 列級變更:識別新增或刪除的列,生成 ALTER TABLE ADD/DROP COLUMN 語句。
  4. 列類型變更:識別列類型的修改,生成 ALTER TABLE MODIFY COLUMN 語句。
  5. 類型支持:支持常見類型,包括帶括號的類型,如 DECIMAL(10,2)、VARCHAR(255) 以及 ENUM('a','b')。

安裝與啓用

安裝該插件需要使用 DeepSeek Harness 的命令行工具。

dsh plugin add github:uckkk/dsh-db-migration

安裝完成後,需要在 profile 的 package.json 配置文件中啓用該 bundle。在 dsh.profile.bundles 字段中加入:

"dsh-db-migration"

典型用法

安裝成功後,可以在會話中調用該插件註冊的工具。核心工具爲 diff_schema。

示例:對比 schema_v1.sql 和 schema_v2.sql,將生成的遷移 SQL 輸出到 migrations/20260816_up.sql。

diff_schema(oldFile="schema_v1.sql", newFile="schema_v2.sql", outFile="migrations/20260816_up.sql")

適用場景與注意

適用場景:適用於需要快速生成數據庫結構遷移腳本的場景,特別是當需要對比兩個版本的 DDL 文件並找出差異時。

注意範圍:
* 該插件覆蓋常見 CREATE TABLE 語法(MySQL/PostgreSQL/SQLite 基礎列定義)。
* 不處理外鍵、索引、複合主鍵、複雜默認值或觸發器。
* 生成的遷移 SQL 僅作爲起點,涉及線上數據時請務必人工複覈後再執行。
* 安裝即在本機運行第三方代碼,請自行審閱源碼與許可證(MIT)。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜