Laravel次要数据库连接不起作用
问题描述:
我有一个mysql77数据库连接config/database.php
如下,它工作正常。Laravel次要数据库连接不起作用
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
我想要定义另一个替代连接(用于测试目的)如下。 (相同的主机,但不同的数据库):
'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
其中DB_DATABASE_TEST
,DB_USERNAME_TEST
和DB_PASSWORD_TEST
在.env
如下被定义:
DB_DATABASE_TEST=db_other
DB_USERNAME_TEST=usr_other
DB_PASSWORD_TEST=secret
然而,该第二连接确实不工作。
在修补匠,如果我尝试使用新的连接:
DB ::连接( 'mysql_testing') - > getPdo()
InvalidArgumentException与消息“数据库[mysql_testing]不 配置。 “
如果我尝试检查配置值,mysql
作品,但新的连接mysql_testing
返回null:
Config::get('database.connections.mysql')
[
"driver" => "mysql",
"host" => "127.0.0.1",
"port" => "3306",
"database" => "***",
"username" => "***",
"password" => "***",
"charset" => "utf8",
"collation" => "utf8_unicode_ci",
"prefix" => "",
"strict" => false,
"engine" => null,
]
Config::get('database.connections.mysql_testing')
null
任何想法我怎么可以调试这个问题?
答
这是因为Laravel 5自动缓存配置值。因此,即使我们更改config/database.php值,这些更改也不会生效,因为Laravel会继续从缓存中读取它。
有一种方法可以清除缓存。 但是这不会清除缓存配置
php artisan cache:clear
幸运的是,对于不同的工匠命令。 要清除配置缓存,您需要使用
php artisan config:clear