Laravel PHPUnit-用于多个连接的SQLite内存数据库

Laravel PHPUnit-用于多个连接的SQLite内存数据库,laravel,sqlite,eloquent,phpunit,Laravel,Sqlite,Eloquent,Phpunit,我的应用程序必须使用两个数据库连接,称为mysql1和mysql2。用户模型位于第一个连接上,部门模型位于第二个连接上 这两者之间有一种关系,一个属于许多用户的部门。该关系使用存储在mysql2数据库中的department_用户透视表 这非常有效,除了在测试时。我正在使用PHPUnit,并将DB_驱动程序设置为sqlite,将DB_数据库设置为:memory:以便测试运行得更快,并且不会影响实际的MySQL数据库 如何使内存中的数据库与多个连接一起工作?有没有办法给他们每个人一个唯一的名字 p

我的应用程序必须使用两个数据库连接,称为mysql1和mysql2。用户模型位于第一个连接上,部门模型位于第二个连接上

这两者之间有一种关系,一个属于许多用户的部门。该关系使用存储在mysql2数据库中的department_用户透视表

这非常有效,除了在测试时。我正在使用PHPUnit,并将DB_驱动程序设置为sqlite,将DB_数据库设置为:memory:以便测试运行得更快,并且不会影响实际的MySQL数据库

如何使内存中的数据库与多个连接一起工作?有没有办法给他们每个人一个唯一的名字


phpunit返回的错误是找不到表,这意味着它无法连接第二个数据库。

我遇到了一些类似的问题。这可能是可能的,但我最终放弃了使用
:memory:
,转而使用本地文件作为我的SQLite数据库。然后我会有机会给他们起一个独一无二的名字,就像你建议的那样

此外,为了让每个数据库都能够了解其他数据库,以便使用透视表,您必须让测试在查询将要使用的数据库上执行
将数据库“$database”附加为$name
。并确保您没有在事务内部执行该语句,否则它将无法工作

在这里查看我的答案:。 我认为这与您所要寻找的内容是一致的。

可能是重复的