我想使用 HSQL 进行集成测试。因此,我想使用与生产完全相同的脚本设置测试架构。这是postgresql方言。在测试脚本中,我尝试设置方言,但它似乎不起作用。
至少对于uuid数据类型和约束,我得到语法错误异常。 例如,我得到一个:
创建表测试表( id bigint NOT NULL, some_uuid uuid NOT NULL, 名称 字符变化(32( 不为空,约束 可测试主键 (id( ( WITH ( OIDS=FALSE (;嵌套异常是 java.sql.SQLSyntaxErrorException:找不到类型或用户缺少 权限:UUID
对于以下脚本:
SET DATABASE SQL SYNTAX PGS TRUE;
CREATE TABLE testtable
(
id bigint NOT NULL,
some_uuid uuid NOT NULL,
name character varying(32) NOT NULL,
CONSTRAINT testtable PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
我得到:
无法执行类路径资源的 SQL 脚本语句 #2 [setupTestData.sql]: CREATE TABLE testtable ( id bigint NOT NULL, name 字符变化(32( 不为空,约束可测试主键 (ID( ( 与 ( OIDS=FALSE (;嵌套异常是 java.sql.SQLSyntaxErrorException: 意外令牌: (
对于此脚本:
SET DATABASE SQL SYNTAX PGS TRUE;
CREATE TABLE testtable
(
id bigint NOT NULL,
--some_uuid uuid NOT NULL,
name character varying(32) NOT NULL,
CONSTRAINT testtable PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
HSQLDB 2.3.4及更高版本支持UUID。
HSQLDB目前不支持PostgreSQL扩展WITH (ODS= FALSE)