问题标签 [embedded-postgres]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
326 浏览

postgresql - 为什么我的 Postgres 集成测试突然抛出异常?

上周,我的集成测试运行良好。今天,在我的测试运行之前,这个异常一直被抛出:

PostgresForTesting.scala:111 是我代码中这个函数的主体:

DriverManagerjava.sql.DriverManager

_dbUrl在这里设置:

EmbeddedPostgresru.yandex.qatools.embed.postgresql.EmbeddedPostgres,来自postgresql-embedded

在这个问题今天早上提出丑陋的头之前,我使用的是临时目录,而不是对imadatadir目录进行硬编码。(请参阅标记为 的行I changed this。)我对imadatadir目录进行了硬编码以尝试调试此问题。(所以这不是导致问题的原因。)

有趣的事实:base/12669/2601它抱怨无法打开的文件确实存在:

进一步的事实,可能相关也可能不相关:

  • 我的同事都无法重现该问题;他们在 Linux 上,我在 macOS 上
  • 我周末没有升级 macOS

版本:

  • 斯卡拉 2.12.4
  • JVM:甲骨文 Java 8 更新 191
  • SBT 1.2.1
  • postgresql-embedded 2.9(我看到版本 2.10 现在已经发布了......但是当我升级使用它时没有变化)
  • macOS 莫哈韦 10.14.1

关于如何让它再次工作的任何想法?或者至少进一步调查出了什么问题?

0 投票
1 回答
582 浏览

macos - Embedded Postgres 在 Mac OS 上无法获取进程 PID

我使用嵌入式 PostgreSQL和 Java 11 进行集成测试。在 Windows 上它运行良好,但在 Mac 上它首先下载 Mac OS 二进制文件(这是预期的):

但随后它因以下堆栈跟踪而失败:

当我查看Processes源代码时,我看到它在内部使用PidHelper.LEGACY,第一次尝试通过 pid 获取失败unixLikeProcessId()

请任何人提示一下为什么会发生这种情况或如何解决?

0 投票
0 回答
242 浏览

spring-boot - 使用 Spring Boot 和 Flyway 迁移的只读嵌入式 postgres DB 问题

用例 我试图在我的应用程序中有 2 个数据源。一个用于只读连接,另一个用于读写连接。

配置 我已将我的 JPA 存储库配置为使用不同的连接。在我的 IT 案例中,我有以下配置application.yaml

本地构建中的问题

当我在本地运行测试时,尝试创建readOnlyDataSource错误时测试失败

当我将 DB url 更改为 时jdbc:postgresql://127.0.0.1:5432/postgres,本地测试通过。bean 正在正确创建。

CI 构建中的问题

但是,在 CI 构建中,无论数据库名称为app还是postgres,测试都会失败

我定义了 flyway 迁移,我可以在日志中看到迁移成功运行一次,主要读写数据源。创建只读连接后,看到日志migrations are up to date,所以我认为它没有尝试使用 RO 连接再次运行。

我还使用@Primary了我的读写配置,因此 flyway 知道使用该数据源进行迁移,而不是只读连接。

与嵌入式 postgres 进行只读连接是否有任何限制?

0 投票
0 回答
291 浏览

postgresql - otj-pg-embedded > Embedded PostgreSQL > 错误:“PROCEDURE”处或附近的语法错误

当我尝试使用EmbeddedPostgres创建 PROCEDURE 时遇到问题

休息一切正常,除了当我尝试创建程序时请在代码下方找到。

面对以下异常

任何人都可以请帮忙。

0 投票
0 回答
111 浏览

java - 如何使用 EmbeddedPostgres 运行 Spring Reactive 集成测试

我创建了一个基于 Spring 反应式的控制器/存储库并使用 r2dbc-postgresql 驱动程序。

以前,为了测试经典的 Spring boot REST 服务,我使用 EmbeddedPostgres。我尝试为基于反应的控制器添加相同的内容,但不是嵌入式 postgres,而是尝试连接到正常的本地 PostgreSQL 数据库。

看起来异步 PostgreSQL 驱动程序与嵌入式不兼容。

有没有办法让他们在我的集成测试中一起工作?

0 投票
1 回答
42 浏览

java - 在 Java 中分配随机套接字时,为什么要等待`isBound`?

最近我遇到了嵌入式 postgres库的问题。我试图通过手动选择一个空闲端口

但我在某个地方遇到了竞争条件(我的测试挂在第二个测试套件启动时)。

然后我了解到该库本身具有这种能力(使用随机端口)并且它没有我遇到的问题。我分析了源代码,我发现唯一的区别是他们做了额外的检查:

所以在端口被随机化后,他们等到它被绑定。我指的代码。

我想知道为什么有这段代码。我对“绑定”的理解是它等同于在给定端口上“监听”,但在这里情况并非如此,因为此代码在服务器启动之前运行。事实上,服务器将启动(并将自身绑定)到这个确切的端口。这让我很困惑。

0 投票
0 回答
28 浏览

java - Postgres JSONB 列映射到 HashTrieMap 而不是 HashMap

当我们调用这个。这是使用 Postgres 数据库。

在这个 Workflow 类中,这是一个下面的列

现在的情况是,当我添加 kafka-test 依赖项时,这个 Object 类型的输入值被转换为 HashTrieMap,但是当我删除这个依赖项时,我得到了 HashMap。

Spring Boot 版本:2.2.6.RELEASE

我正在尝试添加 Embedded Postgres 嵌入式 kafka 和嵌入式 redis。

0 投票
0 回答
37 浏览

postgresql - CurrVal 函数在 Postgres 嵌入式数据库中返回 null

我正在尝试在 postgres 嵌入式数据库中使用 currVal 函数来获取我在同一会话的插入语句中插入的值。请在下面找到相同的代码。

学生表定义:

查询插入学生:

查询获取 id 列:

两个插入查询都在单个会话中运行,但是在使用 currVal 函数获取插入的 id 时我得到空值。

相同的查询适用于实际数据库,但不适用于嵌入式扩展。我正在为嵌入式数据库使用 postgis docker 映像。

0 投票
0 回答
133 浏览

java - EmbeddedPostgres.start() 在 MacBook Pro m1 中不起作用

使用 EmbeddedPostgres 进行单元测试,但 EmbeddedPostgres.start() 在 mac m1 中不起作用,出现以下错误:

它在 ubuntu 中运行良好。