spring引导属性,用于在内存中与posgresql兼容

1dkrff03  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(216)

所有人。我在内存和postgresql的兼容性方面遇到了一些问题。我试图在stack overflow和google中找到解决方案,但每个人都使用gradle或其他配置文件。在我的例子中,我使用application.properties文件,在sql语句中得到一个语法错误。
我的错误:在此处输入图像描述
我的资源结构:在这里输入图像描述
例如,我的sql脚本的一部分:

CREATE TABLE candle_1day
(
    id          serial primary key NOT NULL,
    created_at  timestamp(6) without time zone, --> not compability type
    open_price  numeric(35, 15) CHECK ( open_price >= 0 ),
    close_price numeric(35, 15) CHECK ( close_price >= 0 ),
    high_price  numeric(35, 15) CHECK ( high_price >= 0 ),
    low_price   numeric(35, 15) CHECK ( low_price >= 0 ),
    volume      numeric(35, 15) CHECK ( volume >= 0 ),
    currency_id integer            NOT NULL,
    CONSTRAINT unq_candle_1day_currency_id_created_at_idx UNIQUE (currency_id, created_at),
    CONSTRAINT fk_candle_1day_currency_id_to_currency_info_id
        FOREIGN KEY (currency_id) REFERENCES currency_info (id)
);

我的application.properties文件:

spring.datasource.driver-class-name=org.h2.Driver
spring.flyway.user=sa
spring.flyway.password=sa
spring.flyway.schemas=testdb
spring.flyway.url=jdbc:h2:mem:testdb;MODE=PostgreSQL;database_to_upper=false
spring.flyway.locations=filesystem:migration
v64noz0r

v64noz0r1#

h2可以解析 TIMESTAMP(6) WITHOUT TIME ZONE 仅从版本1.4.197开始(当前版本为1.4.200)。
同时请注意 DATABASE_TO_UPPER=FALSE 应仅在1.4.197及更旧版本中使用。在你需要的新版本中 DATABASE_TO_LOWER=TRUE 对于此兼容模式。

相关问题