【问题标题】:Tests using h2 and spring boot使用 h2 和 spring boot 进行测试
【发布时间】:2019-04-01 13:15:33
【问题描述】:

我正在使用 Postgresql 数据库和模式开发应用程序。 在 Entity 中,我使用注释 @table (schema = 'schema name')。 当我在 h2 上运行测试时,出现错误:

Caused by: org.h2.jdbc.JdbcSQLException: Schema "schema name" not found; SQL statement:

我尝试创建文件 schema.sql,包含:

CREATE SCHEMA IF NOT EXISTS schema name AUTHORIZATION sa;
CREATE SCHEMA IF NOT EXISTS shcema name2 AUTHORIZATION sa;
...

但没有成功。 有人可以帮忙吗?

【问题讨论】:

    标签: java postgresql spring-boot testing h2


    【解决方案1】:

    尝试使用 spring.datasource.url 属性定义模式:

    • spring.datasource.url=jdbc:h2:mem:testdb;INIT=CREATE SCHEMA IF NOT EXISTS 架构名称

    【讨论】:

    • 我改成这个 src->resources->schema.sql,并在 application.properties spring.datasource.schema=schema.sql。不成功。如果我做 spring.datasource.url=jdbc:h2:mem:testdb;INIT=CREATE SCHEMA IF NOT EXISTS 模式名称,工作,但我有太多模式...
    • 这种情况下你有多个模式定义,如果你想从你的 sql 文件中使用模式然后从'spring.datasource.url'属性中删除';INIT=CREATE SCHEMA IF NOT EXISTS schema name'
    猜你喜欢
    • 2019-02-02
    • 2017-02-03
    • 2019-05-17
    • 2020-04-19
    • 2013-09-14
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2018-02-05
    相关资源
    最近更新 更多