猿问

varchar 类型的 SymmetricDS 长度不能超过 N

所以我试图使用symmetricDS将 java h2 数据库复制到 postgres。我正在使用zip文件简单配置。这是发生了什么。我遵循了入门指南,下载了 symmetricds,并尝试了演示,然后我尝试了我自己的配置,并在触发器中使用了一些表。但:


如果我复制没有varchar字段的表,h2它工作得很好。

如果我有一个包含varchar字段的表,它会在创建表时崩溃。


JdbcSqlTemplate - ERROR: length for type varchar cannot exceed 10485760

  Position: 161.  Failed to execute: CREATE TABLE "asset"(

    "db_id" BIGINT NOT NULL  DEFAULT nextval('"asset_db_id_seq"'),

    "id" BIGINT NOT NULL,

    "account_id" BIGINT NOT NULL,

    "name" VARCHAR(2147483647) NOT NULL,

    "description" VARCHAR(2147483647),

    "quantity" BIGINT NOT NULL,

    "decimals" SMALLINT NOT NULL,

    "initial_quantity" BIGINT NOT NULL,

    "height" INTEGER NOT NULL,

    "latest" BOOLEAN DEFAULT 'TRUE' NOT NULL,

    PRIMARY KEY ("db_id")

)


确实是一个明显的错误,说 varchar 不应超过 255,但这就是源数据库的情况,无论如何要强制输入任何 varcharTEXT吗?或者有其他方法可以解决这个问题吗?或者这是一个symmetricds尚未解决的错误?


谢谢。


哈士奇WWW
浏览 207回答 1
1回答

墨色风雨

我设法通过手动在目标数据库上创建表来解决这个问题。这是我在运行之前所做的bin/sym。生成查询表我想用创造dbexport的bin/dbexport --engine corp-000 --compatible=postgres --no-data table_a table_b > samples/create_asset_and_trade.sql修改生成的查询文件中的缺陷samples/create_asset_and_trade.sql。就我而言,它是varchar.修复后,运行生成的查询以使用dbimport. bin/dbimport --engine store-001 samples/create_asset_and_trade.sql.bin/sym现在运行应该没问题,它会检测到表已经创建,并跳过表创建步骤。这不是理想的方式,但现在应该可行。
随时随地看视频慕课网APP

相关分类

Java
我要回答