我正在運行laravel 5.4
並注意到事務回滾不起作用。我在settings.php
文件中將我的數據庫引擎設置爲InnoDB
,並嘗試DB::rollback();
和DB::rollBack();
(即大寫和小寫b),但它不回滾我的數據庫。Laravel事務回滾似乎不起作用
我寫了一個單元測試波紋管。它創建一個記錄,提交它,然後回滾。然而,最後的斷言失敗了。在回滾之後,數據庫中仍然存在該記錄。有什麼我失蹤?或者是否有laravel的錯誤?
public function testRollback()
{
$this->artisan('migrate:refresh', [
'--seed' => '1'
]);
DB::beginTransaction();
Season::create(['start_date' => Carbon::now(), 'end_date' => Carbon::now(),]);
DB::commit();
$this->assertDatabaseHas('seasons', [
'start_date' => Carbon::now(), 'end_date' => Carbon::now(),
]);
DB::rollBack();
// This assertion fails. It still finds the record after calling roll back
$this->assertDatabaseMissing('seasons', [
'start_date' => Carbon::now(), 'end_date' => Carbon::now(),
]);
}