我有一个现有的项目,它使用 liquibase 来管理相同数据库结构的 Oracle、MySQL 和 SQLServer 版本,并且我正在添加 Postgres 支持。我需要在指定的架构(即不是默认的公共架构)下创建 Postgres 数据库,并且需要数据库更改日志表也位于该架构中。
我意识到对于 Postgres,我可以通过在 ant 文件的 updateDatabase 目标中指定“defaultSchemaName”参数来实现这一点,但由于当前尚未设置,我不想对其他 RDBM 引入任何副作用,这由同一个 ant 文件管理。有谁知道这个参数的默认值是什么,以便我可以强制其他 RDBM 使用它,从而使我的更改向后兼容?
defaultSchemaName 根据 dbms 实现的不同而变化。在 Oracle 上,默认值为defaultSchemaName用户名。在 MS SQL Server 上,它是 dbo。MySQL 不支持模式,因此没有默认的模式名称。在 Postgres 上,默认模式名称是“public”。
要亲自检查这一点,您可以从 github 获取 liquibase 源代码,并查找扩展 AbstractJdbcDatabase 或实现 Database 接口的类。其中大部分都在包装中liquibase.database.core
| 归档时间: |
|
| 查看次数: |
4460 次 |
| 最近记录: |