java - opentable 嵌入式 postgresql 不起作用

标签 java postgresql in-memory-database

我正在使用 otj-pg-embedded第一次并希望将其合并到我们的测试框架中。详情如下

以下是 maven 依赖项:

 <dependency>
            <groupId>com.opentable.components</groupId>
            <artifactId>otj-pg-embedded</artifactId>
            <version>0.12.5</version>
            <scope>test</scope>
 </dependency>

代码是:
EmbeddedPostgres pg = EmbeddedPostgres.start();
 Connection connection = pg.getPostgresDatabase().getConnection();
 Statement s = connection.createStatement();
 ResultSet rs = s.executeQuery("SELECT 1");
 assertEquals(1, rs.getInt(1));

但它在代码的第 1 行出现 java.lang.IllegalStateException 失败。

堆栈跟踪是:
initdb: invalid locale settings; check LANG and LC_* environment variables

java.lang.IllegalStateException: Process [/var/folders/rj/3jd5_2n16g37lv1v550g9cqw0000gp/T/embedded-pg/PG-b210101549c90a94dbbada389b65c5d2/bin/initdb, -A, trust, -U, postgres, -D, /var/folders/rj/3jd5_2n16g37lv1v550g9cqw0000gp/T/epg2729813194709143982, -E, UTF-8] failed


        at com.opentable.db.postgres.embedded.EmbeddedPostgres.system(EmbeddedPostgres.java:593)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.initdb(EmbeddedPostgres.java:230)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.<init>(EmbeddedPostgres.java:148)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres$Builder.start(EmbeddedPostgres.java:580)
        at com.opentable.db.postgres.embedded.EmbeddedPostgres.start(EmbeddedPostgres.java:480)

有什么我想在这里配置的吗?任何帮助,将不胜感激。

最佳答案

通过查看堆栈跟踪中的这一行initdb: invalid locale settings; check LANG and LC_* environment variables ,

似乎您需要按照此处所述为语言环境设置 env 变量:https://github.com/zonkyio/embedded-postgres/issues/11 .

export LC_CTYPE="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"

关于java - opentable 嵌入式 postgresql 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53775763/

相关文章:

java - 我的 JavaFX Slider 没有改变值,它看起来卡住了

sql - 获取距离指定坐标 5 英里范围内的所有建筑物

unit-testing - 在 EF 7.0(内存中)中使用数据注释或 fluent api 验证实体

sql - 为 Postgres 中的竞赛存储 'Rank'

sql - SQL 中的无损/公平份额划分

java - 在 Java 应用程序中查询内存中的一组对象的技术

database - 内存数据库

java - 如何使用多个@Transactional 注解的方法?

java - 为什么来自 Netbeans 的 Java 8 会劫持在我的浏览器中运行的 Java 7?

java - Keycloak 创建用户角色