SQLite Database is Locked

Submitted by michael on Thu, 05/31/2018 - 11:06
Spent a couple of days tracking down a strange error using PHPunit and SQLite for testing a complex application. The test suite kept throwing
PDOException: SQLSTATE[HY000]: General error: 5 database is locked
and halting in test that didn't touch the database. The problem was in an unrelated test that ran before it. The test uses iterators to examine database contents, but didn't iterate all the way through the result set. The iterator left the database locked. Finishing the iterator unlocked the database. while($iterator->current()){ $iterator->next(); } // clean out the iterator or the db gets locked.