【发布时间】:2021-07-05 16:38:24
【问题描述】:
我在每个更改日志中指定架构,如下所示
<changeSet author="xyz" id="create_app_table">
<createTable tableName="app" schemaName="CONF">
<column name="application" type="varchar(100)"/>
<column name="profile" type="varchar(100)"/>
</createTable>
<changeSet>
所有用户定义的表都是在 CONF 架构下创建的,但 DATABASECHANGELOG 和 DATABASECHANGELOGLOCK 表是在 dbo 架构下创建的。
我正在使用 Microsoft SQL Server 并使用以下 cmd 运行 liquibase 脚本
mvn liquibase:update
liquibase-maven-plugin.properties
url=jdbc:sqlserver://xyz:1433;database=TEST
username=****
password=****
driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
我在单个数据库下有多个架构,我希望两个日志表都限制在自己的架构中。
我尝试了几个选项,但都没有帮助。
首先,我没有将架构名称放在每个变更日志中,而是将其作为 liquibaseSchemaName=CONF 放在属性文件中,它不起作用,所有表都是在 dbo 架构下创建的
其次,我将模式名称放在 pom 文件中,如下所示
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<configuration>
<propertyFile>src/main/resources/liquibase/liquibase-maven-plugin.properties</propertyFile>
<changeLogFile>src/main/resources/changelog/changelog.xml</changeLogFile>
<defaultSchemaName>CONF</defaultSchemaName>
</configuration>
</plugin>
但我得到了这个错误
无法在 Microsoft SQL Server 上使用默认架构名称 CONF,因为当前用户 (dbo) 的登录架构不同,并且 SQL Server 不支持为每个会话设置默认架构
【问题讨论】:
标签: sql-server liquibase