diff roundup/backends/back_sqlite.py @ 6917:fba76e0bba98

set journal mode to wal when creating db. Trying to work around sqlite3.OperationalError: disk I/O error errors in CI that I can't reproduce locally. Also this allows reads to happen while writes are occurring. This should permit using the web interface for browsing while a large write load (e.g. bulk data loading from another tracker) is happening. Right now autogenerating issues locks up the tracker for reading with an error that the database is locked.
author John Rouillard <rouilj@ieee.org>
date Tue, 06 Sep 2022 11:32:13 -0400
parents fad6b3a272cd
children a96a239db0d9
line wrap: on
line diff
--- a/roundup/backends/back_sqlite.py	Mon Sep 05 23:47:23 2022 -0400
+++ b/roundup/backends/back_sqlite.py	Tue Sep 06 11:32:13 2022 -0400
@@ -203,6 +203,8 @@
             self.sql('create index ids_name_idx on ids(name)')
             self.create_version_2_tables()
             self._add_fts5_table()
+            # Set journal mode to WAL.
+            self.conn.execute('pragma journal_mode=wal')
 
     def create_version_2_tables(self):
         self.sql('create table otks (otk_key varchar, '

Roundup Issue Tracker: http://roundup-tracker.org/