我有两个数据库连接。一个用于我的应用程序,另一个用于测试 在我的 .. \ config \ database.php
中 'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
'testing' => [
'driver' => 'mysql',
'host' => env('DB_TEST_HOST', 'localhost'),
'database' => env('DB_TEST_DATABASE', 'forge'),
'username' => env('DB_TEST_USERNAME', 'forge'),
'password' => env('DB_TEST_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
我可以使用
更改播种中的数据库连接php artisan db:seed --database=testing
我想使用修补程序进行连接'测试'但无法改变它。有没有办法改变修补程序的数据库连接类似于数据库种子?
答案 0 :(得分:4)
当你的问题开始于使用一个数据库进行测试/开发而一个用于生产时,你应该考虑使用不同的环境,这样你就不会在部署和代码之间修改代码。本地测试。
php artisan tinker --env=local
默认情况下,如果您未指定
--env
,则表示您将使用/your-app/.env
使用local
时,您可以阅读/your-app/.env.local
答案 1 :(得分:1)
更改默认连接
$model_instance = new App\YourModel();
$model_instance->setConnection('new_connection');
$data = $model_instance->find(1);
答案 2 :(得分:1)
要将内部修补程序中的默认数据库连接设置为“ mysql_test”,请使用以下命令:
>>> use DB
>>> DB::setDefaultConnection('mysql_test');
当您要测试迁移和种子服务器而不弄乱现有(正在工作的)本地数据库时,它特别有用。