1

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

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

4

2 回答 2

1

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

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

我想情况并非如此,但仅供参考Liquibase 在您无法直接访问数据库的情况下具有“离线模式”。这是Offline Database Support的文档。

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

于 2020-03-03T15:44:44.533 回答
1

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

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

于 2020-03-03T16:48:56.767 回答