djangoでは、あるデータベースの同じテーブルのデータを別のデータベースにコピーしたいとします。 'db01'から 'default'にコピーします。スキーマは同一です。django:新しいプライマリキーの作成を中止するにはどうすればいいですか?
>>> a=Household.objects.filter(h_identifier='H122000-48').using('db01')
>>> a[0].pk
>>> u'451465ea-0137-11e0-879a-70f1a16e0f80'
>>> a[0].save(using='default')
>>> b=Household.objects.filter(h_identifier='H122000-48').using('default')
>>> b[0].pk
>>> u'7c2484fe-8641-11e0-b080-00188b4d6b0e'
'default'に挿入されたレコードの主キーは 'db01'からフェッチされたものと同じではありません。他のテーブルとの整合性を維持するために、pkを変更してはいけません。 djangoのdocsセクションselecting-a-database-for-saveは、インスタンス 'a'にすでにプライマリがあるので、新しいレコードが 'default'に挿入されたときに同じプライマリキーが使用されることを示しています。私はそれをすることができません。
これを行うことができますか?前もって感謝します!!
(これは奇妙な設定のように見えるかもしれませんが、アプリケーションは1日中に切断されたネットブックで独立して動作し、すべてのネットブックがドッキングされている夜にデータがマスターDBにマージされます。しかし、可能であればDjangoのORMを使用したい)
これは、基礎となるデータベースの問題のようです。 –
私はこれをmysqlで試しただけなので、あなたの答えを確認することはできませんが、それが最も可能性の高い理由です。 – erikvw
RDBMSにはどのような問題がありますか? –