Laravelでデータベースの接続を指定してmigrateやdb:seedを実行する
特定の接続でmigrate
やdb:seed
を実行する方法。
--database=DATABASE
を付けて実行すれば特定の接続で実行できる。
config/database.php
<?php return [ // 省略 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => database_path("database.sqlite"), 'prefix' => '', ], '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, ], 'pgsql' => [ 'driver' => 'pgsql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'schema' => 'public', ], 'sqlsrv' => [ 'driver' => 'sqlsrv', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', ], 'testing' => [ 'driver' => 'sqlite', 'database' => database_path("testing.sqlite"), 'prefix' => '', ], ], //省略 ];
みたいな設定があってtesting
でのみ実行したいなら
php artisan migrate --database=testing php artisan db:seed --database=testing
で出来る。