Laravel 中的动态数据库更改
Posted
技术标签:
【中文标题】Laravel 中的动态数据库更改【英文标题】:Dynamic Database change in Laravel 【发布时间】:2020-06-16 22:29:29 【问题描述】:我在 Laravel 5.2 中使用 DB::disconnect
和 DB::reconnection
为多租户系统连接数据库。
代码如下:
DB::disconnect();
Config::set('database.connections.mysql', $config);
DB::reconnect();
其中 $config 是要设置的配置数组,当我必须更改唯一的数据库名称时,这可以正常工作,但是当我想更改数据库的前缀时,它不起作用,每次都需要旧的数据库。
我尝试从中间件config:cache
更改连接,但它删除了所有输入变量。
那么,如何更改数据库连接的前缀?有什么帮助吗?
【问题讨论】:
【参考方案1】:您需要清除数据库对象的缓存:
// Will disconnect automatically
DB::purge('mysql');
// Register new config
Config::set('database.connections.mysql', $config);
// Will reconnect automatically
DB::table('table')->get();
【讨论】:
非常感谢,laravel 中有什么东西可以防止数据库缓存吗? 我认为没有。 “Databse 缓存”意思是“sql 连接”——这意味着如果你没有数据库缓存,laravel 将在每次查询时连接和断开连接(这是低性能和压力证明)以上是关于Laravel 中的动态数据库更改的主要内容,如果未能解决你的问题,请参考以下文章