複数のデータベース バックエンドを使用する Django アプリケーションを開発しています。django アプリケーションを実行しているマシンに sqlite データベースを配置し、リモートの mysql データベースと同期したいと考えています。注意が必要なのは、アプリケーションを実行しているこのマシンが常にインターネットに接続されているとは限らないため、mysql データベースが常に利用できるとは限らないことです。アプリケーションを実行する複数のマシンがあり、それぞれが独自のローカル sqlite DB を持ちますが、すべて同じリモート mysql DB を使用します。
私はまだコードを書いていませんが、ここに私が考えているものがあります。挿入または更新を実行するたびに、リモート DB が利用できない場合を除き、両方のデータベースに書き込みたいと思います。その場合、ローカル データベースのテーブルに sql ステートメントを保存して、リモート DB が利用可能なときに実行します。
これはデータベース ルーターで実行できますか、それとも db ステートメントごとに手動で実装する必要がありますか?
PK に関する注意: 直接関係はありませんが、必ず聞かれます。主キーは、各マシンでローカルに生成されます。mysql DB には、このキーのフィールドと、アプリケーションの各インスタンスの一意の識別子を持つフィールドがあり、これらが一緒になって一意のキーを提供します。