我一直在尝试与 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”更改为“client”,将“corp”更改为“server”,但它不再起作用了。坦率地说,我不知道这里发生了什么,也不知道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);
但这显然不起作用,因为这些信息的一半现在存储在不同的位置,但即使删除不再存在的列(谁知道,也许这些新表只存储相同的信息以提高可读性?)我无法得到它工作。
有什么建议么?
更新
当我只运行训练示例时,一切正常。所以真正的问题是:这些是什么意思:
STORE_ID=:EXTERNAL_ID or OLD_STORE_ID=:EXTERNAL_ID
和store_id=''$(externalId)''
?server
如果我的节点被调用而不是corp
和client
而不是,我该如何改变store
呢?
更新2
据此,我的路由器没问题,我的sym_trigger_router
配置有一些问题,即,store_id=''$(externalId)''