liquibase 中“defaultSchemaName”参数的默认值是什么?

0 liquibase

我有一个现有的项目,它使用 liquibase 来管理相同数据库结构的 Oracle、MySQL 和 SQLServer 版本,并且我正在添加 Postgres 支持。我需要在指定的架构(即不是默认的公共架构)下创建 Postgres 数据库,并且需要数据库更改日志表也位于该架构中。

我意识到对于 Postgres,我可以通过在 ant 文件的 updateDatabase 目标中指定“defaultSchemaName”参数来实现这一点,但由于当前尚未设置,我不想对其他 RDBM 引入任何副作用,这由同一个 ant 文件管理。有谁知道这个参数的默认值是什么,以便我可以强制其他 RDBM 使用它,从而使我的更改向后兼容?

Ste*_*nie 5

defaultSchemaName 根据 dbms 实现的不同而变化。在 Oracle 上,默认值为defaultSchemaName用户名。在 MS SQL Server 上,它是 dbo。MySQL 不支持模式,因此没有默认的模式名称。在 Postgres 上,默认模式名称是“public”。

要亲自检查这一点,您可以从 github 获取 liquibase 源代码,并查找扩展 AbstractJdbcDatabase 或实现 Database 接口的类。其中大部分都在包装中liquibase.database.core