Oops, let separate loading of pragmas for not-first-time load.

Since DB_INIT was only run during first time setup, all future
loads were not running the pragmas, not even the FK restriction.
This commit is contained in:
voussoir 2018-05-03 19:02:53 -07:00
parent 64449569ea
commit 96d79f2b25
2 changed files with 10 additions and 4 deletions

View file

@ -43,11 +43,14 @@ FILENAME_BADCHARS = '\\/:*?<>|"'
# happens after the out-of-date check occurs, so no chance of accidentally # happens after the out-of-date check occurs, so no chance of accidentally
# overwriting it. # overwriting it.
DATABASE_VERSION = 14 DATABASE_VERSION = 14
DB_INIT = f''' DB_PRAGMAS = f'''
PRAGMA cache_size = 10000; PRAGMA cache_size = 10000;
PRAGMA count_changes = OFF; PRAGMA count_changes = OFF;
PRAGMA foreign_keys = ON; PRAGMA foreign_keys = ON;
PRAGMA user_version = {DATABASE_VERSION}; PRAGMA user_version = {DATABASE_VERSION};
'''
DB_INIT = f'''
{DB_PRAGMAS}
---------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS users( CREATE TABLE IF NOT EXISTS users(

View file

@ -1314,6 +1314,7 @@ class PhotoDB(
if existing_database: if existing_database:
if not skip_version_check: if not skip_version_check:
self._check_version() self._check_version()
self._load_pragmas()
else: else:
self._first_time_setup() self._first_time_setup()
@ -1356,10 +1357,12 @@ class PhotoDB(
def _first_time_setup(self): def _first_time_setup(self):
self.log.debug('Running first-time setup.') self.log.debug('Running first-time setup.')
cur = self.sql.cursor() cur = self.sql.cursor()
cur.executescript(constants.DB_INIT)
self.sql.commit()
statements = constants.DB_INIT.split(';') def _load_pragmas(self):
for statement in statements: cur = self.sql.cursor()
cur.execute(statement) cur.executescript(constants.DB_PRAGMAS)
self.sql.commit() self.sql.commit()
def __del__(self): def __del__(self):