我的应用程序必须使用两个数据库连接,名为mysql1和mysql2。 User模型位于第一个连接上,Department模型位于第二个连接上。
两者之间存在关系,一个部门属于多个用户。该关系使用存储在mysql2数据库中的department_user数据透视表。
这非常有用,除了测试之外。我使用PHPUnit并将DB_DRIVER设置为sqlite,将DB_DATABASE设置为:memory:这样测试运行得更快,并且不会碰到实际的MySQL数据库。
如何使内存数据库与多个连接一起使用?有没有办法给每个人一个独特的名字?
phpunit返回的错误是找不到表,这意味着它无法连接第二个数据库。
答案 0 :(得分:0)
我遇到过类似的问题。这可能是,但我最终使用:memory:
取消了我的SQLite数据库的本地文件。然后我就像你建议的那样,有机会给他们一个独特的名字。
此外,为了让每个数据库都能了解对方数据库,您必须在查询将要执行的问题上执行ATTACH DATABASE '$database' AS $name
测试。起源于。并确保您没有在事务中执行该语句,否则它将无法正常工作。
在这里查看我的答案:belongsToMany relationship in Laravel across multiple databases。 我认为这与你正在寻找的东西截然不同。