如何使用一个应用程序中的Django模型从第二个应用程序连接到数据库副本?

时间:2018-09-24 10:54:40

标签: django django-models django-rest-framework django-authentication django-apps

我的系统由两个应用程序组成,这两个应用程序是单独的Django 项目(假设 A B ),它们具有自己的默认数据库和用户。应用程序 B 也会从应用程序 A 数据库副本中读取。

要实现这种行为,我将应用程序 A 包含在 B Get-BrowserData -Browser Chrome -Datatype History -UserName user1中,并且可以通过其模型访问数据库副本。但是所有与用户(权限,组)有关的东西都被弄乱了。

在两个应用程序中使用INSTALLED_APPS是否会导致这种现象,是否有更好的解决方案通过Django ORM使用副本?

1 个答案:

答案 0 :(得分:0)

的确有更好的方法。在Django世界中,它称为DatabaseRouter。

您可以在这里阅读有关内容:https://docs.djangoproject.com/en/2.1/topics/db/multi-db/

这是一本非常全面的指南,介绍如何为您的Django应用实现多数据库环境。

您总是可以编写自定义DatabaseRouter类,该类允许您定义以下行为:只读,仅写,每个应用标签的完全访问权限,甚至您的模型名称。

您甚至可以手动执行此操作(但我不建议您这样做-因为这可能需要在当前代码库中进行很多更改:

insert into temp.test_csv_orc partition(year="2018", month="09", day="28", country) 
select count[0] as count_1, count[1] count_2, count[2] count_3, country from temp.test_csv

希望有帮助-如果您还有其他问题-请询问。