我有两个数据库连接。一个用于我的应用,另一个用于测试。在我的 .. 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
我想将Tinker用于连接"测试",但无法更改它。有什么方法可以更改与数据库播种类似的Tinker的数据库连接?
当您的问题开始使用一个数据库进行测试/开发,一个用于生产,您应该考虑使用不同的环境,这将使您在部署和AMP之间没有更改代码;本地测试。
可以通过指定您的环境轻松实现此任务:
php artisan tinker --env=local
默认情况下,如果未指定
--env
,则将使用/your-app/.env
使用local
时,您会从/your-app/.env.local
对于您的特定用例:
php artisan db:seed --env=local
laravel 5.1的进一步阅读:https://laravel.com/docs/5.1/configuration
最新版本:https://laravel.com/docs/configuration
nb:您应该避免在" .env"中检查。向VCS文件,.env.local应该可以共享,但是最好不要将生产凭据与您的VC捆绑。
将默认数据库连接设置为 tinker中的的'mysql_test'我使用此命令:
>>> use DB
>>> DB::setDefaultConnection('mysql_test');
当您想测试迁移和播种机而不弄乱现有(工作的(本地数据库时,它特别有用。
更改默认连接
$model_instance = new AppYourModel();
$model_instance->setConnection('new_connection');
$data = $model_instance->find(1);