如何在django orm中的多个数据库/模式上连接表?

时间:2017-01-25 14:08:01

标签: mysql django database django-orm multiple-databases

我是django的新手,我已经开始将现有API移动到Django。当前的API有多个数据库。 例如,表account位于数据库A中,表notification位于数据库B中。 它是运行应用程序的遗留数据库,因此我无法更改数据库。 为了便于说明,两者的结构都是 -

帐户表

+-----+--------------+
| id  | account_name |
+-----+--------------+
| 123 | John         |
+-----+--------------+
| 124 | Henry        |
+-----+--------------+
| 126 | Vlad         |
+-----+--------------+

通知表

+----+------------+-----------------------------------+
| id | account_id | notification_body                 |
+----+------------+-----------------------------------+
| 1  | 123        | Someone sent you a message        |
+----+------------+-----------------------------------+
| 2  | 123        | Someone commented on your photo   |
+----+------------+-----------------------------------+
| 3  | 126        | Someone sent you a friend request |
+----+------------+-----------------------------------+

在上表中,notificationaccount_id是一个与accountid相关的外键,它是account中的主键。表。我想加入这两个表,相当于以下SQL查询。

SELECT * FROM A.account AS acc 
JOIN B.notification ON noti ON noti.account_id = acc.id

Django使用外键使用select_related()函数连接表。现在,问题是,我有外键,不仅限于一个数据库。但是,django目前不支持多个数据库上的外键。那么,如果外键关联连接不可行,我们如何加入Django中另一个数据库中的那些表呢?

请记住,这两个表都在不同的数据库中。

0 个答案:

没有答案