Django 访问外部数据库获取数据到项目数据库

Django Accessing external Database to get data into project database

我正在寻找针对以下情况的“最佳实践”guide/solution。

我有一个 Django 项目,其中包含我创建和管理的 MySql 数据库。我必须每 5 分钟从第二个(外部的,不是由我管理的)数据库导入数据,以便执行一些操作。我拥有外部数据库和所有必要信息的读取权限。

我已经阅读了有关多数据库使用的 Django 文档:在 settings.py 中注册数据库,使用 --database 标志迁移,query/access 通过路由到数据库的数据(简短版本) 和 Whosebug 上关于此事的多个问题。

所以我的计划是: 在settings.py中注册第二个数据库,使用inspectdb添加到模型,迁移,定义一个从外部数据库读取数据并将其添加到内部(自己的)数据库的方法。

但是我有一些问题:

  1. 如果我不管理外部数据库,是否必须注册它? (很可能是为了使用 ORM 或游标访问数据)

  2. 如果我不管理数据库并且没有写入权限,我该如何迁移模型?我也不需要所有的表(大约 250 个,但只需要 5 个)。 (假迁移是一个值得考虑的选项吗?我会使用 inspectdb 并只迁移必要的表。)

  3. 因为我只需要从外部数据库中检索数据而不是回写,是否有一个不断获取最新数据的方法就足够了,就像这个[=10中建议的第二个解决方案一样=]

欢迎任何thoughts/ideas/suggestions!

我不会为此使用 Django 的 ORM,而只是使用 psycopg2 和 SQL 访问数据库,将您关心的列放入 dict 中,然后使用它们。否则,对该外部数据库表的任何微小更改都可能破坏您的 Django 应用程序,因为模型不再匹配。这可能会造成比 ORM 更令人头疼的问题。