DB::通过 Laravel/Lumen 中的 Config::set 动态更改数据库名称后,连接未更新



我正在尝试通过以下方式动态连接到数据库:

DB::disconnect('mysql');
Config::set('database.connections.mysql.database', 'db_1');

当我使用DB::table('table_from_db_1')->...时,它工作得很好。我从db_1那里获得数据;

但是,当我尝试获取DB::connection()->getDatabaseName()时,它仍然返回原始数据库名称而不是db_1

问题:

  1. 为什么会这样?
  2. 如何有效地测试我是否实际连接到动态数据库?

对于遇到相同问题的任何人,使用 purge 而不是 disconnect 解决了问题。

DB::purge('mysql'); // purge instead of disconnect
Config::set('database.connections.mysql.database', 'db_1');

最后,使用 try-catch 内部的DB::connection()->getPdo();检查连接是否有效。

最新更新