在MySQL中,我们可以在不同数据库中的表之间建立外键关系。我发现很难在各自的Django模型上翻译这种关系。
我在docs中读过不支持跨db关系,但是我们可以覆盖一些属性/函数,以便我们可以将表标识为DB.table
而不是{{1} }?
例如,table
中的表格table1
会在DB1
中的某些table2
中被引用。 Django尝试(失败)在DB2
中找到table1
,并提出DB2
DatabaseError
除Variable Value
charset 'latin1'
exc <class '_mysql_exceptions.ProgrammingError'>
self <MySQLdb.cursors.Cursor object at 0x2a87ed0>
args (195,)
db <weakproxy at 0x2a95208 to Connection at 0xdad0>
value ProgrammingError(1146, "Table 'DB2.table1' doesn't exist")
query 'SELECT (1) AS `a` FROM `table1` WHERE `table1`.`ndx` = 195 LIMIT 1'
方法外,几乎所有内容都有效。向正确的方向推进会有很大帮助!
答案 0 :(得分:0)
您需要Manually Selecting a Database。
看看你给出的错误,你应该这样做:
qs = table1.objects.using('DB1 ').filter(pk=id)
# just an example
在此示例中,我们明确告诉Django在table1
中找到DB1
。
答案 1 :(得分:0)
似乎我们无法做任何事情来让不同mysql数据库中的两个表之间的关系工作。这是设计的。票证17875有一些信息。我们需要编写可以解决此问题的代码。