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
字段的默认值?
我怀疑由于此错误,客户端和服务器之间的所有同步都在停止。
任何线索都表示赞赏。
答案 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 功能向客户发送相应的更改或创建。
参考文献: