Symmetricds无法同步默认值列

时间:2016-06-19 03:19:34

标签: postgresql sqlite data-synchronization symmetricds

Symmetricds服务器配置了postgresql 9.4,客户端节点配置了sqlite3。我最近不得不在服务器端更改表,然后使用命令symadmin send-schema --engine <server> --node <node> <table>

将模式发送到客户端

表格中的一项更改是在日期字段update_date date DEFAULT ('now'::text)::date

上添加了默认值

由于应用了更改,因此在对称日志上,我现在在服务器端看到以下错误消息:

ERROR [<server>] [AcknowledgeService] [qtp1874154700-1322] The outgoing batch <node>-41837 failed. ERROR: invalid input syntax for type date: "'now'::text)::date"

此错误是否显示,因为sqlite3不支持'now'::text)::date"作为默认值?在这种情况下,我如何传播更改?

OR

如果是对称问题,则无法将'now'::text)::date"识别为update_date字段的默认值?

我怀疑由于此错误,客户端和服务器之间的所有同步都在停止。

任何线索都表示赞赏。

2 个答案:

答案 0 :(得分:0)

希望问题不在生产中

您需要删除带有更改的传出批处理或仅删除其与alter table之间的链接

然后使用命令行将自定义本机SQL DDL语句从中央节点发送到每个节点,或者手动连接到每个节点

答案 1 :(得分:0)

错误的批次将阻止所有其他批次出错。您可以通过将状态设置为&#34; IG&#34;来忽略错误批处理。在那个特定的批次。但是,这会导致批次中的所有更改捕获都不会应用于目标。

您确定在 SQLITE 上正确应用了默认值。以下是默认日期值为now的表的示例。

create table forum (id int primary key, some_date date default(date('now')));

然后,您可以通过发送 sql 功能向客户发送相应的更改或创建。

参考文献: