laravel – 动态切换数据库连接
发布时间:2020-12-12 16:28:06 所属栏目:MsSql教程 来源:网络整理
导读:对于多个控制台命令,我需要更改数据库,以便所有有力的命令和查询在正确的数据库(和服务器)上运行. 我看到了几个解决方案,最简单的似乎是像这样改变配置: $new_connection = [ 'driver' = 'mysql','host' = '127.0.0.1','database' = 'test_db','username' =
对于多个控制台命令,我需要更改数据库,以便所有有力的命令和查询在正确的数据库(和服务器)上运行.
我看到了几个解决方案,最简单的似乎是像这样改变配置: $new_connection = [ 'driver' => 'mysql','host' => '127.0.0.1','database' => 'test_db','username' => 'test','password' => 'test','charset' => 'utf8','collation' => 'utf8_general_ci','prefix' => '','strict' => false ]; config(['database.connections.mysql' => $new_connection]); DB::purge('mysql'); 唯一的问题(我注意到)是当我尝试做交易时,更具体地说,当我在Codeception中的验收测试中进行交易时,它们根本不起作用. 我使用的命令是: DB::connection()->beginTransaction(); // inside the _before function 和 DB::connection()->rollBack(); // inside the _after function 解决方法您必须创建2个不同的连接http://fideloper.com/laravel-multiple-database-connections return array( 'default' => 'mysql','connections' => array( # Our primary database connection 'mysql' => array( 'driver' => 'mysql','strict' => false ),# Our secondary database connection 'mysql2' => array( 'driver' => 'mysql','database' => 'test_db_2',),); 现在当你想查询你必须传递你需要的连接 $users = DB::connection('mysql2')->select(...); 由于默认值是声明为mysql,因此您可以省略它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer · 最佳实践 · 数据库实现大容量插入的多种方式
- 使用SQL INNER JOIN有什么不好的
- 高效的SQLSERVER分页查询(推荐)
- .net – SQL Server Varbinary(max):从varbinary字段中选择
- sql-server – sql登录失败的用户X … Windows身份验证
- sql-server – 为什么T-SQL变量比基于GETDATE()函数的比较慢
- 如何在数据库中查找所有prolog规则
- System.Data.SqlClient.SqlError: 媒体集有 2 个媒体簇,但只
- sql-server – 获得随机排序的最佳方法是什么?
- SQLServer中的HAVING子句学习