liz*_*kya 2 database laravel artisan laravel-5.1 tinker
我有两个数据库连接。一个用于我的应用程序,另一个用于测试。在我的.. \ 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,
],
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方式更改播种中的数据库连接
php artisan db:seed --database=testing
Run Code Online (Sandbox Code Playgroud)
我想使用修补程序进行连接“测试”,但无法更改它。有什么方法可以像数据库种子一样更改修补程序的数据库连接?
由于您的问题开始于使用一个数据库进行测试/开发,而使用一个数据库进行生产,因此您应该研究使用不同的环境,这将使您在部署和本地测试之间的代码保持不变。
php artisan tinker --env=local
Run Code Online (Sandbox Code Playgroud)
默认情况下,如果指定no
--env,则将使用/your-app/.env
使用时,local您从中读取变量/your-app/.env.local
对于您的特定用例:
php artisan db:seed --env=local
Run Code Online (Sandbox Code Playgroud)
进一步阅读:https : //laravel.com/docs/5.6/configuration
小智 6
要从Tinker中将默认数据库连接设置为“mysql_test” ,我使用以下命令:
>>> use DB
>>> DB::setDefaultConnection('mysql_test');
Run Code Online (Sandbox Code Playgroud)
当您想要测试迁移和播种器而不弄乱现有(工作)本地数据库时,它特别有用。
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |