markdown-it
demo
Delete
Submit
clear
permalink
# 常用指令(in mvn) Liquibase Maven Plugin 的指令都遵循標準的 Maven 格式:`mvn liquibase:<目標 (Goal)>`。 ## ✨ Liquibase Maven Plugin 常用指令範例 以下是您在使用 Liquibase 進行資料庫版本控制時最常用到的幾個指令: | 目標 (Goal) | 指令格式 | 作用說明 | | :--- | :--- | :--- | | **`update`** | `mvn liquibase:update` | 🚀 **執行資料庫更新**。執行 Changelog 檔案中所有尚未被執行的 `changeset`,將資料庫更新到最新狀態。 | | **`updateSQL`** | `mvn liquibase:updateSQL` | 📄 **生成更新 SQL 腳本**。生成執行 `update` 時所需要的所有 SQL 腳本,但**不實際執行**到資料庫,用於審核。 | | **`rollback`** | `mvn liquibase:rollback` | 🔙 **回滾最近 N 個 Changeset**。回滾最近執行過的指定數量 (`rollbackCount`) 的變更。 | | **`tag`** | `mvn liquibase:tag` | 🏷️ **標記資料庫狀態**。在 `DATABASECHANGELOG` 表中寫入一個標籤 (Tag),用於標記當前的資料庫狀態,方便後續回滾。 | | **`status`** | `mvn liquibase:status` | 💡 **查看待執行變更**。列印出 Changelog 中還有哪些 `changeset` 尚未被應用到資料庫。 | ----- ## 🛠️ 詳細指令與用法 ### 1\. 執行資料庫更新 (Update) 這是最常用的指令,將所有未執行的變更集套用到資料庫。 * **指令:** ```bash mvn liquibase:update ``` ### 2\. 生成更新 SQL 腳本 (UpdateSQL) 在生產環境部署前,通常會先用這個指令生成 SQL 腳本,手動審核後再執行。 * **指令:** ```bash mvn liquibase:updateSQL ``` * *結果:* SQL 腳本通常會輸出到 `target/liquibase/migrate.sql` 或控制台,具體取決於您的配置。 ### 3\. 回滾變更 (Rollback) 回滾是將資料庫狀態恢復到先前某個時間點、某個標籤或某個變更集之前。 #### 範例 A: 回滾最近 N 個變更 回滾最近 3 個已執行的 `changeset`。 * **指令:** ```bash mvn liquibase:rollback -Dliquibase.rollbackCount=3 ``` #### 範例 B: 回滾到指定標籤 回滾所有在特定標籤 (`version_1.0.0`) 之後執行的變更。 * **指令:** ```bash mvn liquibase:rollback -Dliquibase.rollbackTag=version_1.0.0 ``` ### 4\. 標記資料庫狀態 (Tag) 在成功部署到某個版本後,建議打上標籤。 * **指令:** ```bash mvn liquibase:tag -Dliquibase.tag=v2.0.0_release ``` ### 5\. 查看待執行的變更 (Status) 檢查本地 Changelog 中有多少變更集還沒有被應用。 * **指令:** ```bash mvn liquibase:status ``` ### 6\. 生成變更集差異報告/檔案 (Diff) 比較兩個資料庫 (源資料庫和參考資料庫) 之間的差異。 * **指令:** ```bash # 僅生成差異報告(輸出到控制台) mvn liquibase:diff # 生成差異並輸出到新的 Changelog 檔案 mvn liquibase:diffChangeLog ``` * *注意:* `diff` 相關指令需要您在 Maven 配置中定義 `referenceUrl`、`referenceUsername` 等參考資料庫的連線資訊。 ----- ## ⚠️ 前提:Maven 配置 請確保您的 `pom.xml` 已經正確配置了 `liquibase-maven-plugin`,並且提供了資料庫連線資訊,例如: ```xml <plugin> <groupId>org.liquibase</groupId> <artifactId>liquibase-maven-plugin</artifactId> <version>...</version> <configuration> <propertyFile>src/main/resources/liquibase.properties</propertyFile> </configuration> </plugin> ```
html
source
debug
Fork me on GitHub