DB::Connection 在 Laravel/Lumen 中通过 Config::set 动态更改数据库名称后未更新?
DB::Connection not updated after dynamically changing db name via Config::set in Laravel/Lumen?
我正在尝试通过以下方式动态连接到数据库:
DB::disconnect('mysql');
Config::set('database.connections.mysql.database', 'db_1');
当我使用 DB::table('table_from_db_1')->...
时,它工作得很好。我从 db_1
;
获取数据
但是,当我尝试获取 DB::connection()->getDatabaseName()
时,它仍然是 returns 原始数据库名称,而不是 db_1
。
问题:
- 为什么会这样?
- 如何有效地测试我是否真的连接到动态数据库?
对于遇到相同问题的任何人,使用 purge
而不是 disconnect
解决了问题。
DB::purge('mysql'); // purge instead of disconnect
Config::set('database.connections.mysql.database', 'db_1');
最后,在try-catch
中使用DB::connection()->getPdo();
检查连接是否有效。
我正在尝试通过以下方式动态连接到数据库:
DB::disconnect('mysql');
Config::set('database.connections.mysql.database', 'db_1');
当我使用 DB::table('table_from_db_1')->...
时,它工作得很好。我从 db_1
;
但是,当我尝试获取 DB::connection()->getDatabaseName()
时,它仍然是 returns 原始数据库名称,而不是 db_1
。
问题:
- 为什么会这样?
- 如何有效地测试我是否真的连接到动态数据库?
对于遇到相同问题的任何人,使用 purge
而不是 disconnect
解决了问题。
DB::purge('mysql'); // purge instead of disconnect
Config::set('database.connections.mysql.database', 'db_1');
最后,在try-catch
中使用DB::connection()->getPdo();
检查连接是否有效。