From: Oleg Broytman Date: Wed, 22 Jul 2015 19:27:23 +0000 (+0300) Subject: Refactoring: move DB (re)creation code to xsetbg_db.py X-Git-Tag: v5.0.0~12 X-Git-Url: https://git.phdru.name/?p=xsetbg.git;a=commitdiff_plain;h=990bd4dfbb33d7f14e2a44371a9ae76d8ccb125f Refactoring: move DB (re)creation code to xsetbg_db.py --- diff --git a/reload_db.py b/reload_db.py index 97012a8..41a3c94 100755 --- a/reload_db.py +++ b/reload_db.py @@ -10,25 +10,14 @@ __copyright__ = "Copyright (C) 2007-2015 PhiloSoft Design" __license__ = "GNU GPL" import sys -from sqlobject import SQLObjectNotFound, sqlhub +from sqlobject import sqlhub from sqlobject.sqlbuilder import Insert from xsetbg_conf import xsetbg_conf -from xsetbg_db import SqliteSequence, XSetBg, xsetbg_db +from xsetbg_db import recreate_db fs_encoding = xsetbg_conf.get("images", "fs_encoding") dump_file = open(sys.argv[1], 'rU') - -if xsetbg_db: - try: - seq = SqliteSequence.byName(XSetBg.sqlmeta.table) - except SQLObjectNotFound: - SqliteSequence(name=XSetBg.sqlmeta.table, seq=0) - else: - seq.seq = 0 # Reset autoincrement counter - xsetbg_db.clearTable() -else: - xsetbg_db = XSetBg - xsetbg_db.createTable() +xsetbg_db = recreate_db() def convert_str(s): if s == "None": @@ -55,7 +44,7 @@ for line in dump_file: values = {'last_shown': timestamp, 'full_name': filename} if id: values['id'] = id - query = txn.sqlrepr(Insert(XSetBg.sqlmeta.table, values=values)) + query = txn.sqlrepr(Insert(xsetbg_db.sqlmeta.table, values=values)) txn.query(query) txn.commit() diff --git a/xsetbg_db.py b/xsetbg_db.py index eedb25f..54d174b 100755 --- a/xsetbg_db.py +++ b/xsetbg_db.py @@ -11,7 +11,8 @@ __all__ = ['xsetbg_db_path', 'xsetbg_db'] import os from sqlobject import SQLObject, connectionForURI, sqlhub, \ - StringCol, UnicodeCol, IntCol, BoolCol, DatabaseIndex, dberrors + StringCol, UnicodeCol, IntCol, BoolCol, DatabaseIndex, dberrors, \ + SQLObjectNotFound from xsetbg_conf import xsetbg_conf @@ -30,6 +31,25 @@ class XSetBg(SQLObject): last_shown_idx = DatabaseIndex('last_shown') flag_idx = DatabaseIndex('flag') + def clearTable(self): + super.clearTable(XSetBg, self) + try: + seq = SqliteSequence.byName(XSetBg.sqlmeta.table) + except SQLObjectNotFound: + SqliteSequence(name=XSetBg.sqlmeta.table, seq=0) + else: + seq.seq = 0 # Reset autoincrement counter + + +def recreate_db(): + global xsetbg_db + if xsetbg_db: + xsetbg_db.clearTable() + else: + xsetbg_db = XSetBg + xsetbg_db.createTable() + return xsetbg_db + db_dirs = [] try: