【发布时间】:2020-08-26 00:12:54
【问题描述】:
使用 liquibase 3.8.9,运行以下变更集成功:
<changeSet author="quarkus" id="1-1">
<createSequence cacheSize="1" cycle="false" incrementBy="1" maxValue="9223372036854775807" minValue="1" schemaName="myschema" sequenceName="mytable_id_seq" startValue="1"/>
</changeSet>
添加数据类型 bigint 规范失败:
<changeSet author="quarkus" id="1-1">
<createSequence cacheSize="1" cycle="false" dataType="bigint" incrementBy="1" maxValue="9223372036854775807" minValue="1" schemaName="myschema" sequenceName="mytable_id_seq" startValue="1"/>
</changeSet>
堆栈跟踪
ERROR: Failed to start application
java.lang.IllegalStateException: liquibase.exception.MigrationFailedException: Migration failed for change set db-test/changelog-0.xml::1-1::quarkus:
Reason: liquibase.exception.DatabaseException: Syntax error in SQL statement "CREATE SEQUENCE MYSCHEMA.MYTABLE_ID_SEQ AS[*] BIGINT START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807"; SQL statement:
CREATE SEQUENCE myschema.mytable_id_seq AS bigint START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807 [42000-200] [Failed SQL: (42000) CREATE SEQUENCE myschema.mytable_id_seq AS bigint START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE 9223372036854775807]
bigint 数据类型有限制吗?
谢谢
【问题讨论】:
-
能否请您提供异常与堆栈跟踪或您收到的错误消息?
-
According to the H2 manual 序列总是使用 bigint 创建的,并且有 no option 可以更改它
-
这意味着 liquibase 应该忽略 dataType="bigint" 指令。