所以我試圖使用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
。
生成查詢表我想用創造
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
提交
取消