gpt4 book ai didi

liquibase - 更好地理解 Liquibase 如何执行变更集

转载 作者:行者123 更新时间:2023-12-04 11:24:51 25 4
gpt4 key购买 nike

我想更好地了解 Liquibase 如何执行变更集。

1)

a) 例如,我有一个包含 4 个更改集的更改日志,我执行 updateDatabase ( http://www.liquibase.org/documentation/ant/updatedatabase_ant_task.html )。
Liquibase 将执行 4 个变更集。

b) 如果我再次运行相同的更改日志 Liquibase 不执行任何设置。

c) 如果我将新的更改集添加到更改日志并运行更改日志,Liquibase 将仅执行新的更改集。

问题:

  • Liquibase 如何知道要执行哪些更改集?
  • Liquibase 如何知道已经执行了哪些变更集?

  • 2) 更改集 ID 有多重要?我可以在更改日志执行后更改它吗?

    3)变更集作者有多重要?我可以在更改日志执行后更改它吗?

    4) 如果我执行 rollbackDatabase ( http://www.liquibase.org/documentation/ant/rollbackdatabase_ant_task.html ) 会发生什么?
    Liquibase 如何知道要回滚哪些更改?

    a) 如果我在 1 a) 之后执行回滚会发生什么。
    Liquibase 会调用位于每个变更集中的回滚元素(4 个回滚元素)吗?

    b) 如果我在 1 b) 之后执行回滚会发生什么。
    Liquibase 如何知道不调用任何回滚元素?

    c) 如果我在 1 c) 之后执行回滚会发生什么。
    Liquibase 会调用仅回滚新更改集的元素吗?

    最佳答案

    我可以回答几个问题,但也许不是全部。

  • C。 - 当您进行第一次更新时,Liquibase 在数据库中创建 2 个新表。主表是 DATABASECHANGELOG,用于跟踪已应用于数据库的更改集。 Liquibase 使用几种方法来识别每个变更集 - id、作者和路径用作复合键。 Liquibase 还会生成每个变更集的校验和,用于判断变更集在应用于数据库后是否已更改。
  • 和 3. 因为更改集 id 和作者用作主键的一部分,如果您部署,然后更改其中之一,您可能会在后续部署中遇到意外行为。我认为 id 和作者也是校验和计算的一部分,所以这也可能会影响事情。我建议您不要在部署后更改它们。
  • 回滚使用相同的机制来了解要回滚的更改集。当您回滚时,您必须以某种方式指定要撤消的更改 - 有关更多信息,请参阅此页面:http://www.liquibase.org/documentation/rollback.html

  • 回滚识别机制是按标签(这意味着您必须在部署时应用标签)、按日期(Liquibase 跟踪每个变更集的部署时间)或按数字(隐式使用每个变更集的日期/时间)部署)。

    关于liquibase - 更好地理解 Liquibase 如何执行变更集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21969487/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com