gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 10:55:15 24 4
gpt4 key购买 nike

所以我尝试使用 symmetricDS用于将 java h2 数据库复制到 postgres。我正在使用 zip 文件进行简单配置。这是发生的事情。我按照入门指南,下载 symds,并尝试演示,然后我尝试使用自己的配置和触发器中的一些表。但是:

  • 如果我在 h2 中复制没有 varchar 字段的表,它工作得很好。
  • 如果我有一个包含 varchar 字段的表,它会在创建表期间崩溃。


JdbcSqlTemplate - 错误:varchar 类型的长度不能超过 10485760
位置:161。执行失败:CREATE TABLE "asset"(
"db_id"BIGINT NOT NULL DEFAULT nextval('"asset_db_id_seq"'),
“id”BIGINT 不为空,
“account_id”BIGINT NOT NULL,
“名称”VARCHAR(2147483647) NOT NULL,
“描述”VARCHAR(2147483647),
“数量” BIGINT NOT NULL,
“小数” SMALLINT NOT NULL,
“初始数量”BIGINT NOT NULL,
“高度”整数不为空,
“最新” boolean 默认“真”不为空,
主键(“db_id”)
)

确实有一个明显的错误,指出 varchar 不应超过 255,但这就是源数据库的情况,是否有办法强制任何 varchar 为 TEXT 类型?或者还有其他办法解决这个问题吗?或者这是 symmetryds 中的一个错误尚未解决?

谢谢。

最佳答案

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

  • 通过 bin/dbexport --engine corp-000 --兼容=postgres --no-data table_a table_b >样本/create_asset_and_trade生成我想要使用dbexport创建的表的查询。 sql
  • 修改生成的查询文件samples/create_asset_and_trade.sql中的缺陷。就我而言,它是 varchar 的长度。
  • 修复此问题后,运行生成的查询以使用 dbimport 填充目标数据库。 bin/dbimport --engine store-001样本/create_asset_and_trade.sql
  • 现在运行 bin/sym 应该可以了,它会检测到表已经创建,并跳过表创建步骤。

这不是理想的方式,但目前应该可行。

关于java - varchar 类型的 SymmetricDS 长度不能超过 N,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51816383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com