【问题标题】:Django Accessing external Database to get data into project databaseDjango 访问外部数据库以将数据导入项目数据库
【发布时间】:2021-01-04 02:32:23
【问题描述】:

我正在寻找以下情况的“最佳实践”指南/解决方案。

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

我已经阅读了关于使用多个数据库的 django 文档:在 settings.py 中注册数据库,使用 --database 标志迁移,通过路由到数据库查询/访问数据(短版)和多个问题关于stackoverflow的问题。

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

但是我确实有一些问题:

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

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

  3. 因为我只需要从外部数据库中检索数据而不是写回,所以有一种方法可以不断获取最新数据,就像answer中建议的第二种解决方案一样,就足够了

欢迎任何想法/想法/建议!

【问题讨论】:

    标签: django database multiple-databases


    【解决方案1】:

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

    【讨论】:

    • 感谢您的提醒!我会研究 psycopg2 包!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多