【问题标题】:Can I suppress DatabaseChangeLogLock table creation?我可以禁止创建 DatabaseChangeLogLock 表吗?
【发布时间】:2020-06-15 21:22:11
【问题描述】:

我有一个模式(适用于应用程序用户),其中只有一个脚本(创建同义词)运行。我没有该架构的 INSERT/UPDATE/CREATE 权限。我可以禁止在该架构中创建审计表(即 DATABASECHANGELOGLOCK 和 DATABASECHANGELOG 表)吗?如果是,我该怎么做?

另外,有人可以告诉我,当第一次部署完成时,代码如何以及在哪里识别出这些审计表是第一次在架构中创建的?请帮忙。

【问题讨论】:

    标签: liquibase liquibase-sql


    【解决方案1】:

    如果您在该架构上没有 INSERT/UPDATE/CREATE,那么您应该设置项目(即在您的 liquibase.properties 文件或您的 POM 中,或者您在应用程序中设置这种东西)所以Liqiubase 跟踪表保存在您有权访问的模式中。您不想不创建它们,因为这会消除使用 Liquibase 的几乎所有好处。要设置的属性称为liquibaseSchemaName

    @htshame 关于代码位置的另一个答案是正确的。

    【讨论】:

    • 有趣,从来不知道 liquibase 可以同时连接到两个架构。
    【解决方案2】:

    Liquibase 应该连接到数据库并且应该有足够的权限来运行。 databasechangelogdatabasechangeloglock 表对于模式更改跟踪至关重要。所以,不,您不能禁止创建这些表。

    回答你问题的第二部分(我可能错了):

    我想不是这样,但仅供参考 Liquibase 具有“离线模式”,适用于您无法直接访问数据库的情况。这是Offline Database Support 的文档。

    它不会在您的数据库中创建表,而是在您的工作目录中创建(默认情况下)databasechangelog.csv 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-02
      • 2021-01-01
      • 2019-02-27
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2011-03-29
      相关资源
      最近更新 更多