Какое значение по умолчанию для параметра defaultSchemaName в liquibase?

У меня есть существующий проект, который использует liquibase для управления версиями Oracle, MySQL и SQLServer одной и той же структуры базы данных, и я добавляю поддержку Postgres. Мне нужно создать базу данных Postgres в соответствии с указанной схемой (т.е. не общедоступной схемой по умолчанию) и мне нужно, чтобы таблица databasechangelog также находилась в этой схеме.

Я понимаю, что для Postgres я могу добиться этого, указав параметр defaultSchemaName в цели updateDatabase моего файла ant, но, поскольку в настоящее время он не установлен, я не хочу вводить какие-либо побочные эффекты для других RDBM, которые управляются из одного и того же файла ant. Кто-нибудь знает, каково значение этого параметра по умолчанию, чтобы я мог заставить другие RDBM использовать его, что сделало мои изменения обратно совместимыми?


person jackos    schedule 21.04.2015    source источник


Ответы (1)


Значение defaultSchemaName зависит от реализации dbms. В Oracle по умолчанию defaultSchemaName является именем пользователя. На MS SQL Server это dbo. MySQL не поддерживает схемы, поэтому имени схемы по умолчанию нет. В Postgres имя схемы по умолчанию — «общедоступное».

Чтобы проверить это самостоятельно, вы можете получить исходный код liquibase с github и найти классы, расширяющие AbstractJdbcDatabase или реализующие интерфейс базы данных. Большинство из них находятся в пакете liquibase.database.core

person SteveDonie    schedule 21.04.2015
comment
Спасибо, очень полезно. - person jackos; 27.04.2015