簡體   English   中英

更改 DATABASECHANGELOG 中已有的舊 Liquibase 文件

[英]Change old Liquibase file which is already in the DATABASECHANGELOG

我有一個舊的 Liquibase.xml 文件,用於向兩列添加索引。 多年來,它已經在 DATABASECHANGELOG 表和生產中。 但是現在我為我的集成測試更新了 H2 數據庫,但由於“article_id”,它們失敗了。 列名中有一個空格。

    <createIndex tableName="order_journal" indexName="IDX_ArticleId_Customer">
        <column name="article_id "/>
        <column name="costumer_id"/>
    </createIndex>

我的數據源配置:

H2 數據源配置

我刪除了空格,測試成功了。 當然應用程序沒有啟動,因為我在變更鎖中編輯了一個已經提交的文件。 編輯舊 Liquibase 文件的常用方法是什么,或者是否有 H2 數據庫的方法?

有幾個選項,您最適合哪一個套件取決於項目中的約定。

  1. 先決條件不影響校驗和:您可以將先決條件添加到現有的變更集,這會阻止在測試數據庫上執行,並為具有相反先決條件的測試數據庫編寫正確的變更集(雖然不清楚如何正確區分測試和生產數據庫) - 檢查Prevent刪除不存在的序列時出錯,例如創建現有用戶
  2. 您可以為修改后的變更集指定<validCheckSum> -似乎正是您的情況
  3. 您可以為測試數據庫創建另一個變更集並將兩個變更集標記為failOnError="false" - 如果變更集僅包含看起來安全的createIndex變更,這種情況也在liquibase 博客Prevent error when drop not existing sequences 中描述,創建現有用戶
  4. 你可以指定<validCheckSum>ANY</validCheckSum> - 在這種情況下你不需要弄清楚以前的校驗和是什么,但這似乎不安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM