1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 16:36:15 +00:00

Replaces commit_unless_managed with atomic transaction

This commit is contained in:
lian
2016-04-14 10:54:30 +08:00
parent 9cea2733ca
commit d3eec6eac9

View File

@@ -166,21 +166,21 @@ class DatabaseStorage(Storage):
encoded = base64.b64encode(binary) encoded = base64.b64encode(binary)
mtime = value_to_db_datetime(datetime.today()) mtime = value_to_db_datetime(datetime.today())
cursor = connection.cursor() with transaction.atomic(using='default'):
cursor = connection.cursor()
if self.exists(name):
query = 'UPDATE %(table)s SET %(data_column)s = %%s, ' + \
'%(size_column)s = %%s, %(mtime_column)s = %%s ' + \
'WHERE %(name_md5_column)s = %%s'
query %= self.__dict__
cursor.execute(query, [encoded, size, mtime, name])
else:
query = 'INSERT INTO %(table)s (%(name_column)s, ' + \
'%(name_md5_column)s, %(data_column)s, %(size_column)s, '+ \
'%(mtime_column)s) VALUES (%%s, %%s, %%s, %%s, %%s)'
query %= self.__dict__
cursor.execute(query, (name, name_md5, encoded, size, mtime))
if self.exists(name):
query = 'UPDATE %(table)s SET %(data_column)s = %%s, ' + \
'%(size_column)s = %%s, %(mtime_column)s = %%s ' + \
'WHERE %(name_md5_column)s = %%s'
query %= self.__dict__
cursor.execute(query, [encoded, size, mtime, name])
else:
query = 'INSERT INTO %(table)s (%(name_column)s, ' + \
'%(name_md5_column)s, %(data_column)s, %(size_column)s, '+ \
'%(mtime_column)s) VALUES (%%s, %%s, %%s, %%s, %%s)'
query %= self.__dict__
cursor.execute(query, (name, name_md5, encoded, size, mtime))
transaction.commit_unless_managed(using='default')
return name return name
def exists(self, name): def exists(self, name):