SymmetricDS は初めてで、データベースの同期に使用したいと考えています。サーバー間。
単純なシナリオは、ショップ ノードとしてローカル サーバーを使用し、登録ノードとしてクラウド サーバーを使用することです。登録ノードには、いくつかの外部キー制約を持つ 40 個のテーブルがあります。私が従った手順は以下のとおりです。
- 登録ノードで初期設定を行い、40 個のテーブルすべてを作成します。
- sym_channel、sym_node_group、sym_router、sym_trigger、sym_trigger_router にデータを挿入します。ここでの基本的なルールは、同期することです。登録からショップ、および同期までのユーザー/ロール/製品関連のテーブル。ショップから登録までの販売関連情報。注 - 現在のテーブル設計では、ユーザー (現在のオペレーターを記録するため)、製品 (製品 ID と販売価格を記録するため (ショップによって異なる場合があります)) を参照する、販売情報に FK 制約があります。
- ショップ ノードに対して初期ロードを実行します。
- これらのテーブルは、登録からショップへのデータ転送フローと同じで、自動的に作成されます。ただし、ショップから登録まで同期される売上関連テーブルは自動では作成されません。したがって、これにより以下のようなエラーが発生します-
2015-06-19 11:32:41,187 WARN [shop-001] [JdbcSqlTemplate] [shop-001-pull-1] 外部キー制約を追加できません。実行に失敗しました: ALTER TABLE ams_pos_customer_ticket
ADD CONSTRAINT fk_customer_ticket
FOREIGN KEY ( TicketId
) REFERENCES ams_pos_ticket
( Id
)
===========================
SymmetricDS を使用して同期したいと考えています。たとえば、データ フローの同期に関係なく、最初にテーブル スキーマを作成します。に、登録ノードと同じスキーマを最初に作成する必要があります。しかし、私のテストでは、同期しかできなかったようです。sym_router での方向と同じである、登録からショップへのテーブル スキーマ。
上記が当てはまる場合、ショップノードを同期する必要があるため、これに対する解決策はありますか。最初にすべてのテーブルを同期し、次に sym_router に従って同期します。データ。