Wrap preparing the database in a transaction. Otherwise it will take many seconds to complete because sqlite will create a transaction per statement

This commit is contained in:
Mark Haines 2014-10-24 19:04:16 +01:00
parent 1342bcedaf
commit db2e350e29
1 changed files with 4 additions and 3 deletions

View File

@ -452,10 +452,11 @@ def prepare_database(db_conn):
db_conn.commit() db_conn.commit()
else: else:
sql_script = "BEGIN TRANSACTION;"
for sql_loc in SCHEMAS: for sql_loc in SCHEMAS:
sql_script = read_schema(sql_loc) sql_script += read_schema(sql_loc)
sql_script += "COMMIT TRANSACTION;"
c.executescript(sql_script) c.executescript(sql_script)
db_conn.commit() db_conn.commit()
c.execute("PRAGMA user_version = %d" % SCHEMA_VERSION) c.execute("PRAGMA user_version = %d" % SCHEMA_VERSION)