所以我试图使用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 回答
![?](http://img1.sycdn.imooc.com/54585094000184e602200220-100-100.jpg)
墨色风雨
TA贡献1853条经验 获得超6个赞
我设法通过手动在目标数据库上创建表来解决这个问题。这是我在运行之前所做的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
现在运行应该没问题,它会检测到表已经创建,并跳过表创建步骤。
这不是理想的方式,但现在应该可行。
添加回答
举报
0/150
提交
取消