我有一个中央的Django服务器,它包含了我在数据库中的所有信息。我想要第二个Django服务器在第二个数据库中包含这些信息的一个子集。我需要一种防弹的方式来选择性地同步两者之间的数据。在两台Django服务器之间同步数据
- 辅助Django需要在特定时间从主服务器提取其数据的子集。子集将不得不被某些字段过滤。
- 辅助Django将不得不偶尔将其数据推送到主数据库。
- 理想情况下,双向同步将保留每个模型的最近修改的对象。
我想沿着使用TimeStampedModel(从Django的扩展),具有或加入我自己的DateTimeField字段(auto_now = TRUE),这样每个对象存储它的最后修改时间线的东西。然后,可能会有一种机制来转储来自一个数据库的数据并将其加载到另一个数据库中,以便只保留最近修改的对象。
我正在考虑的可能性是django的dumpdata,django-extensions dumpscript,django-test-utils makefixture或者django-fixture magic。有很多事情需要考虑,所以我不确定要走下去的路。
您可以在数据库级别执行此操作吗? (例如,如果你正在使用postgres,通过编写pg_dump/pg_restore脚本所需的脚本)如果你需要防弹的东西,那可能会更安全一些。 – bitgarden
在你的主django服务器上创建一个辅助连接并称之为从服务器。编写一个及时运行的cron/celery脚本,并使用默认连接从您的表中获取数据,并使用从属连接保存它们..请参阅https://gist.github.com/bofh19/5887902 – boltsfrombluesky
这些方法能够通过时间戳同步两个数据库? –