为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哈士奇WWW 2021-07-09 18:46:46
所以我试图使用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尚未解决的错误?谢谢。
查看完整描述

1 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

我设法通过手动在目标数据库上创建表来解决这个问题。这是我在运行之前所做的bin/sym

  • 生成查询表我想用创造dbexportbin/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.

  • 修复后,运行生成的查询以使用dbimportbin/dbimport --engine store-001 samples/create_asset_and_trade.sql.

  • bin/sym现在运行应该没问题,它会检测到表已经创建,并跳过表创建步骤。

这不是理想的方式,但现在应该可行。


查看完整回答
反对 回复 2021-07-14
  • 1 回答
  • 0 关注
  • 210 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信