2016-06-19 17 views
0

Symmetricdsサーバがpostgresql 9.4で設定され、クライアントノードがsqlite3で設定されています。私は最近、サーバー側でテーブルを変更して、テーブルの変更のsymadmin send-schema --engine <server> --node <node> <table>Symmetricdsがデフォルト値カラムの同期に失敗する

一つはので、日付フィールドupdate_date date DEFAULT ('now'::text)::date

上のデフォルト値を追加したコマンドを使用して、クライアントにスキーマを送信する必要がありました変更が適用され、対称ログに私は今、サーバー側で次のエラーメッセージを見ています:sqlite3のは、デフォルト値として'now'::text)::date"をサポートしていないため、

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

は、このエラーが現れていますか?そのような場合、どのように変更を伝播できますか?

OR

update_dateフィールドのデフォルト値として'now'::text)::date"を認識していないことSymmetricDSは問題ですか?

このエラーが原因で、クライアントとサーバー間の同期がすべて停止している可能性があります。

何か手がかりがあります。

答えて

0

問題は、生産

に変更またはそれとALTER TABLEの間だけのリンク

カスタムを送信するには、コマンドラインを使用して、発信バッチを削除する必要がありますないことを願いますネイティブのSQL DDL文をセントラルノードから各ノードに送信するか、手動で各ノードにリモート接続する

+0

ありがとう@BorisPavlovićしかし、あなたの提案を完全に理解していませんでした。だから、私は 'sym_outgoing_batch'から特定のエントリを削除する必要があります...どのようにリンクを削除することができますテーブルのコマンドを変更します。最後にスキーマの代わりに、生のSQL ddlを代わりに送信することを提案していますか? – jazaman

+0

alter table式を保持しているsym_data行と失敗した送信バッチをリンクするsym_data_eventの行を削除します –

0

エラーのあるバッチは、エラーのあるすべてのバッチを保持します。特定のバッチでステータスを "IG"に設定することで、エラーのバッチを無視することができます。しかし、これにより、バッチ内のすべての変更キャプチャがターゲットに適用されなくなります。

にデフォルト値が正しく適用されていることを確認してください。SQLITE以下は、デフォルトの日付値nowのテーブルの例です。

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

あなたは、適切な変更を送信したり、送信SQL機能を通して、あなたのクライアントに作成することができます。

参考文献:

関連する問題