【问题标题】:Liquibase always generating changesets for creating/dropping indexLiquibase 总是为创建/删除索引生成变更集
【发布时间】:2017-06-21 08:46:29
【问题描述】:

我刚开始使用 Liquibase,我想知道:为什么当我运行 ./mvnw compile liquibase:diff 时会生成更改集以首先删除现有索引,然后如果它们已经存在则重新创建它们?

例如:

 <changeSet author="me (generated)" id="1486157347995-13">
      <dropIndex indexName="my_idx" tableName="notification"/>
      <createIndex indexName="my_idx" tableName="notification">
         <column name="index_col"/>
      </createIndex>
</changeSet>

【问题讨论】:

    标签: java database maven indexing liquibase


    【解决方案1】:

    可能是出于“懒惰”。

    这是一种确保创建的索引与参考数据库中的索引相同(不仅是名称,还包括使用的列)的简单方法。

    它同时处理两种不同的情况:

    • 目标数据库中缺少索引名称,
    • 索引名称相同,但定义不同。

    【讨论】:

    • 太好了,谢谢您的解释。如果您有时间 - 另一个问题:我应该多久生成一次新的变更日志?每次数据库都有更新?或者我可以只附加小的更改,例如在现有的更改日志中添加新的序列或列吗?有关系吗?谢谢!
    • 就个人而言,我会在每个版本中生成差异。它们被打包为二进制文件中的可交付成果。我发现开发过程中的差异不太有用,因为 liquibase 可以直接在您的开发数据库上构建和更新您的架构。
    猜你喜欢
    • 2018-04-12
    • 2011-09-01
    • 2018-12-28
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多