Move SQL heavy lifting to its own Mixin.
This commit is contained in:
parent
e4e542a8a6
commit
576fac416a
1 changed files with 62 additions and 50 deletions
|
@ -681,6 +681,60 @@ class PDBPhotoMixin:
|
||||||
print('Search results took:', end_time - start_time)
|
print('Search results took:', end_time - start_time)
|
||||||
|
|
||||||
|
|
||||||
|
class PDBSQLMixin:
|
||||||
|
def __init__(self):
|
||||||
|
super().__init__()
|
||||||
|
self.on_commit_queue = []
|
||||||
|
|
||||||
|
def close(self):
|
||||||
|
self.sql.close()
|
||||||
|
if self.ephemeral:
|
||||||
|
self.ephemeral_directory.cleanup()
|
||||||
|
|
||||||
|
def commit(self):
|
||||||
|
while self.on_commit_queue:
|
||||||
|
task = self.on_commit_queue.pop()
|
||||||
|
print(task)
|
||||||
|
args = task.get('args', [])
|
||||||
|
kwargs = task.get('kwargs', {})
|
||||||
|
task['action'](*args, **kwargs)
|
||||||
|
self.sql.commit()
|
||||||
|
|
||||||
|
def sql_delete(self, table, pairs, *, commit=False):
|
||||||
|
cur = self.sql.cursor()
|
||||||
|
|
||||||
|
(qmarks, bindings) = sqlhelpers.delete_filler(pairs)
|
||||||
|
query = 'DELETE FROM %s %s' % (table, qmarks)
|
||||||
|
#self.log.debug(query)
|
||||||
|
cur.execute(query, bindings)
|
||||||
|
|
||||||
|
if commit:
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
def sql_insert(self, table, data, *, commit=False):
|
||||||
|
column_names = constants.SQL_COLUMNS[table]
|
||||||
|
cur = self.sql.cursor()
|
||||||
|
|
||||||
|
(qmarks, bindings) = sqlhelpers.insert_filler(column_names, data)
|
||||||
|
query = 'INSERT INTO %s VALUES(%s)' % (table, qmarks)
|
||||||
|
#self.log.debug(query)
|
||||||
|
cur.execute(query, bindings)
|
||||||
|
|
||||||
|
if commit:
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
def sql_update(self, table, pairs, where_key, *, commit=False):
|
||||||
|
cur = self.sql.cursor()
|
||||||
|
|
||||||
|
(qmarks, bindings) = sqlhelpers.update_filler(pairs, where_key=where_key)
|
||||||
|
query = 'UPDATE %s %s' % (table, qmarks)
|
||||||
|
#self.log.debug(query)
|
||||||
|
cur.execute(query, bindings)
|
||||||
|
|
||||||
|
if commit:
|
||||||
|
self.commit()
|
||||||
|
|
||||||
|
|
||||||
class PDBTagMixin:
|
class PDBTagMixin:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
@ -945,7 +999,14 @@ class PDBUserMixin:
|
||||||
return objects.User(self, data)
|
return objects.User(self, data)
|
||||||
|
|
||||||
|
|
||||||
class PhotoDB(PDBAlbumMixin, PDBBookmarkMixin, PDBPhotoMixin, PDBTagMixin, PDBUserMixin):
|
class PhotoDB(
|
||||||
|
PDBAlbumMixin,
|
||||||
|
PDBBookmarkMixin,
|
||||||
|
PDBPhotoMixin,
|
||||||
|
PDBSQLMixin,
|
||||||
|
PDBTagMixin,
|
||||||
|
PDBUserMixin,
|
||||||
|
):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
data_directory=None,
|
data_directory=None,
|
||||||
|
@ -999,7 +1060,6 @@ class PhotoDB(PDBAlbumMixin, PDBBookmarkMixin, PDBPhotoMixin, PDBTagMixin, PDBUs
|
||||||
|
|
||||||
# OTHER
|
# OTHER
|
||||||
|
|
||||||
self.on_commit_queue = []
|
|
||||||
self._cached_frozen_children = None
|
self._cached_frozen_children = None
|
||||||
|
|
||||||
self._album_cache.maxlen = self.config['cache_size']['album']
|
self._album_cache.maxlen = self.config['cache_size']['album']
|
||||||
|
@ -1065,20 +1125,6 @@ class PhotoDB(PDBAlbumMixin, PDBBookmarkMixin, PDBPhotoMixin, PDBTagMixin, PDBUs
|
||||||
def _uncache(self):
|
def _uncache(self):
|
||||||
self._cached_frozen_children = None
|
self._cached_frozen_children = None
|
||||||
|
|
||||||
def close(self):
|
|
||||||
self.sql.close()
|
|
||||||
if self.ephemeral:
|
|
||||||
self.ephemeral_directory.cleanup()
|
|
||||||
|
|
||||||
def commit(self):
|
|
||||||
while self.on_commit_queue:
|
|
||||||
task = self.on_commit_queue.pop()
|
|
||||||
print(task)
|
|
||||||
args = task.get('args', [])
|
|
||||||
kwargs = task.get('kwargs', {})
|
|
||||||
task['action'](*args, **kwargs)
|
|
||||||
self.sql.commit()
|
|
||||||
|
|
||||||
@decorators.transaction
|
@decorators.transaction
|
||||||
def digest_directory(
|
def digest_directory(
|
||||||
self,
|
self,
|
||||||
|
@ -1326,40 +1372,6 @@ class PhotoDB(PDBAlbumMixin, PDBBookmarkMixin, PDBPhotoMixin, PDBTagMixin, PDBUs
|
||||||
thing = thing_map['class'](self, db_row=thing)
|
thing = thing_map['class'](self, db_row=thing)
|
||||||
yield thing
|
yield thing
|
||||||
|
|
||||||
def sql_delete(self, table, pairs, *, commit=False):
|
|
||||||
cur = self.sql.cursor()
|
|
||||||
|
|
||||||
(qmarks, bindings) = sqlhelpers.delete_filler(pairs)
|
|
||||||
query = 'DELETE FROM %s %s' % (table, qmarks)
|
|
||||||
#self.log.debug(query)
|
|
||||||
cur.execute(query, bindings)
|
|
||||||
|
|
||||||
if commit:
|
|
||||||
self.commit()
|
|
||||||
|
|
||||||
def sql_insert(self, table, data, *, commit=False):
|
|
||||||
column_names = constants.SQL_COLUMNS[table]
|
|
||||||
cur = self.sql.cursor()
|
|
||||||
|
|
||||||
(qmarks, bindings) = sqlhelpers.insert_filler(column_names, data)
|
|
||||||
query = 'INSERT INTO %s VALUES(%s)' % (table, qmarks)
|
|
||||||
#self.log.debug(query)
|
|
||||||
cur.execute(query, bindings)
|
|
||||||
|
|
||||||
if commit:
|
|
||||||
self.commit()
|
|
||||||
|
|
||||||
def sql_update(self, table, pairs, where_key, *, commit=False):
|
|
||||||
cur = self.sql.cursor()
|
|
||||||
|
|
||||||
(qmarks, bindings) = sqlhelpers.update_filler(pairs, where_key=where_key)
|
|
||||||
query = 'UPDATE %s %s' % (table, qmarks)
|
|
||||||
#self.log.debug(query)
|
|
||||||
cur.execute(query, bindings)
|
|
||||||
|
|
||||||
if commit:
|
|
||||||
self.commit()
|
|
||||||
|
|
||||||
|
|
||||||
_THING_CLASSES = {
|
_THING_CLASSES = {
|
||||||
'album':
|
'album':
|
||||||
|
|
Loading…
Reference in a new issue