2017-04-14 68 views
1

我有一個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_TESTDB_USERNAME_TESTDB_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 

任何想法我怎麼可以調試這個問題?

回答

0

這是因爲Laravel 5自動緩存配置值。因此,即使我們更改config/database.php值,這些更改也不會生效,因爲Laravel會繼續從緩存中讀取它。

有一種方法可以清除緩存。 但是這不會清除緩存配置

php artisan cache:clear 

幸運的是,對於不同的工匠命令。 要清除配置緩存,您需要使用

php artisan config:clear