SymmetricDS Postgres 目标为所有 sym_* 表提供 "Failed to read table"

SymmetricDS Postgres target gives "Failed to read table" for all sym_* tables

我正在尝试设置从 MySQL 到 Postgres 的简单复制。相同的模式。按照 Demo Tutorial 中的步骤稍作更改(使用 MySQL 和 Postgres 驱动程序)后,我仍然无法进行复制。

根据运行宁bin/sym

之后的投诉,需要进行一些更改
  1. SET GLOBAL show_compatibility_56 = ON需要在MySQL数据库中设置
  2. 对于 Postgres,我需要使用 protocolVersion=3 而不是示例中设置的 2。

奇怪的是 SymmetricDS 能够创建 sym_* 表,但抱怨无法读取它们。我已验证在 bin/sym 为 运行 之前不存在表,但在之后存在。这是日志的摘录

// Successful creation of table
[store-001] - PostgreSqlSymmetricDialect - DDL applied: CREATE TABLE "sym_notification"(
    "notification_id" VARCHAR(128) NOT NULL,
    ...
    PRIMARY KEY ("notification_id")
)

...

// Unable to read from created table
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_notification
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_notification
[store-001] - AbstractDatabaseWriter - Did not find the sym_notification table in the target database
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_monitor
[store-001] - PostgreSqlDdlReader - Failed to read table: sym_monitor
[store-001] - AbstractDatabaseWriter - Did not find the sym_monitor table in the target database

同样的错误适用于所有 sym_* 个表。

数据库在 Docker 中 运行ning,但由于 SymmetricDS 没有抱怨无法连接,并且能够创建表,我认为它与 Docker.

Postgres DB 中的数据库由 engines/store-001.properties 中指定的同一用户创建。这仍然与角色和访问权限有关吗?

尝试使用来自某些数据库导航器的 symmetric-ds 使用的 username/password 连接到 postgres 数据库,例如 Jetbrain's Datagrip 然后尝试从 sym_* 表中插入、更新、选择内容.如有必要,为用户分配访问权限。

使用 Postgres 9.6.1(当前最新版本)时,服务器上会记录以下错误 运行 bin/sym

ERROR: column am.amcanorder does not exist at character 427

问题已通过使用 Postgres 9.5.5 解决,感谢 Nick Barnes pointing this out in a

如果您从 Postgres 升级到最新的 JDBC 驱动程序,它将工作。

从最新的 lib 目录替换现有的 Postgres 驱动程序:https://jdbc.postgresql.org/download.html