我一直在嘗試使用SymmetricDS進行條件同步。問題是,無論我做什麼,它都會忽略應該有條件同步的表,並且只是在沒有條件的情況下同步表。使用SymmetricDS進行條件同步
所以我想,我使用這些條件錯了。我無法找到用戶指南當前版本的材料,所以我有以下幾點:
insert into sym_router
(router_id,source_node_group_id,target_node_group_id,router_type,router_expression,create_time,last_update_time)
values('corp_2_one_store', 'corp', 'store', 'column','STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID',current_timestamp, current_timestamp);
insert into sym_trigger_router
(trigger_id,router_id,initial_load_order,initial_load_select,last_update_time,create_time)
values('item_selling_price','corp_2_one_store',100,'store_id=''$(externalId)''',current_timestamp,current_timestamp);
從SymmetricDS包裝的樣品,但我改變了「店」到「客戶端」和「總公司」到「服務器「在我自己的配置中,它不再工作。坦率地說,我不知道STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID
和store_id=''$(externalId)''
這裏發生了什麼,以及爲什麼有兩個。
從網站,我從早期版本有這樣的例子:
insert into SYM_TRIGGER
(source_table_name, source_node_group_id, target_node_group_id, channel_id,
sync_on_insert, sync_on_update, sync_on_delete,
node_select,
initial_load_order, last_updated_by, last_updated_time, create_time)
values
('sale_transaction', 'corp', 'store', 'sale_transaction',
1, 1, 1,
'and external_id = $(curTriggerValue).store',
105, 'demo', current_timestamp, current_timestamp);
但是,這顯然是行不通的,因爲這個信息的一半現在被存放在不同的地方,但即使除去那些不存在了colums (誰知道,也許這些新表只存儲可讀性相同的信息?)我無法讓它工作。
有什麼建議嗎?
更新 當我只運行訓練示例時,一切正常。所以這裏真正的問題是:這些是什麼意思: STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID
和store_id=''$(externalId)''
?我怎麼能改變,如果我的節點被稱爲server
而不是corp
和client
而不是store
?
更新2 據this,我的路由器是好的,我有一些問題,我sym_trigger_router
配置,即store_id=''$(externalId)''
您使用的symmetricDs的版本是什麼? –
@BorisPavlović最新的3.7.19 – SMSk
路由器看起來不錯,你可以看看在插入/更新db路由這個路由器路由'sym_outgoing_batch'表中有一個新行後的行嗎?該表可以通過'sym_data_event'和'sym_data'連接,以查看哪些數據屬於路由出站批處理。 –