[英]Symfony Many-to-Many Relationship with External Database
在我的应用程序中,我需要查询外部数据库数据库中的表,该数据库通过多对多关系链接到我的默认数据库。 我的中间表位于我的默认数据库中。
为此,我修改了database.yml以包括外部数据库。 然后,我将中介表(位于默认数据库中的message_news_rel)和来自外部源(新闻)的表添加到了schema.yml中。
这是我指定关系的方式:
MessageNews:
connection: uda_iPoste
tableName: message_news_rel
columns:
message_id:
type: integer(10)
primary: true
news_id:
type: integer(10)
primary: true
relations:
Message:
local: message_id
foreign: id
foreignAlias: MessageNewses
News:
local: news_id
foreign: id
foreignAlias: MessageNewses
News:
...
relations:
Messages:
class: Message
foreignAlias: Newses
refClass: MessageNews
local: news_id
foreign: message_id
Message:
...
relations:
Newses:
class: News
foreignAlias: Messages
refClass: MessageNews
local: message_id
foreign: news_id
当我尝试在应用程序中使用模型时,出现以下错误:
Base table or view not found: 1146 Table 'uda_web_dev.message_news_rel' doesn't exist
...毫无疑问是指查询的这一部分:
FROM news n LEFT JOIN message_news_rel
这使我假设Symfony在尝试建立关系时没有将连接从默认数据库切换到外部数据库。
如果我遗漏了任何重要细节,请告诉我。
是否有针对此问题的已知修复程序?
如果您考虑合理,那么您的要求就很多。 每个查询或事务都应仅包含要执行的数据库中存在的表。 不要忘记,数据库抽象总是有其局限性,如果您检查每个实现,它们都会抽象查询的创建和操作,但是我看不到他们如何不能抽象数据库。
因此,如果您绝对必须拆分数据库,请实施某种dabatase集群。 否则,查询中的实现表位于同一数据库中,然后将结果连接到symfony中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.