Для нескольких консольных команд мне нужно изменить базы данных, чтобы все мои красноречивые команды и запросы выполнялись на правильном db (и сервере).
Я видел несколько решений, простейший, похоже, меняет конфигурацию так:
$new_connection = [
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'test_db',
'username' => 'test',
'password' => 'test',
'charset' => 'utf8',
'collation' => 'utf8_general_ci',
'prefix' => '',
'strict' => false
];
config(['database.connections.mysql' => $new_connection]);
DB::purge('mysql');
Единственная проблема (я заметил) - это когда я пытаюсь совершать транзакции, а точнее, когда делаю транзакции внутри моих приемочных тестов в Codeception - они просто не работают.
Я использую следующие команды:
DB::connection()->beginTransaction(); // inside the _before function
и
DB::connection()->rollBack(); // inside the _after function