【发布时间】:2018-08-16 04:51:36
【问题描述】:
我将 liquibase 3.5.5 与 postgresql 一起使用。我所有的表都是在指定的模式中创建的,但是当 liquibase 尝试生成 DDL 时,它会附加“public”。在referencesTableName 前面。我尝试将表名设为“identity.users”,但它只是尝试创建 public.“identity.users”。
例如下面的
<createTable tableName="users" schemaName="identity">
<column name="id" type="bigint" defaultValueSequenceNext="seq_users">
<constraints primaryKey="true" primaryKeyName="pk_users"/>
</column>
</createTable>
<createTable tableName="external_identities" schemaName="identity">
<column name="id" type="bigint" defaultValueSequenceNext="seq_external_identities">
<constraints primaryKey="true" primaryKeyName="pk_external_identities"/>
</column>
<column name="user_id" type="bigint">
<constraints foreignKeyName="fk_external_identities_users" referencedTableName="users" referencedColumnNames="id" nullable="false"/>
</column>
</createTable>
生产:
CREATE TABLE identity.external_identities (id BIGINT DEFAULT nextval('identity.seq_external_identities') NOT NULL, user_id BIGINT NOT NULL, CONSTRAINT fk_external_identities_users FOREIGN KEY (user_id) REFERENCES public.users(id))
文档没有多大帮助,XSD 文件没有将架构列为选项:
<!-- Attributes for constraints -->
<xsd:attributeGroup name="constraintsAttributes">
<xsd:attribute name="nullable" type="booleanExp" />
<xsd:attribute name="primaryKey" type="booleanExp" />
<xsd:attribute name="primaryKeyName" type="xsd:string" />
<xsd:attribute name="primaryKeyTablespace" type="xsd:string" />
<xsd:attribute name="unique" type="booleanExp" />
<xsd:attribute name="uniqueConstraintName" type="xsd:string" />
<xsd:attribute name="references" type="xsd:string" />
<xsd:attribute name="referencedTableName" type="xsd:string"/>
<xsd:attribute name="referencedColumnNames" type="xsd:string"/>
<xsd:attribute name="foreignKeyName" type="xsd:string" />
<xsd:attribute name="deleteCascade" type="booleanExp" />
<xsd:attribute name="deferrable" type="booleanExp" />
<xsd:attribute name="initiallyDeferred" type="booleanExp" />
<xsd:attribute name="checkConstraint" type="xsd:string" />
</xsd:attributeGroup>
【问题讨论】:
标签: postgresql liquibase