Implement atomic_update for SQL.
On sqlalchemy most updates are atomic enough for most use cases. Anyway, here is an atomic_update that is compatible to the mongo version.
This commit is contained in:
parent
82cd968347
commit
325ca444d1
@ -1,5 +1,5 @@
|
|||||||
# GNU MediaGoblin -- federated, autonomous media hosting
|
# GNU MediaGoblin -- federated, autonomous media hosting
|
||||||
# Copyright (C) 2011 MediaGoblin contributors. See AUTHORS.
|
# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS.
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU Affero General Public License as published by
|
# it under the terms of the GNU Affero General Public License as published by
|
||||||
@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
from mediagoblin.db.sql.base import Session
|
||||||
|
|
||||||
|
|
||||||
def _simple_printer(string):
|
def _simple_printer(string):
|
||||||
"""
|
"""
|
||||||
@ -269,3 +271,14 @@ def assure_migrations_table_setup(db):
|
|||||||
if not MigrationData.__table__.exists(db.bind):
|
if not MigrationData.__table__.exists(db.bind):
|
||||||
MigrationData.metadata.create_all(
|
MigrationData.metadata.create_all(
|
||||||
db.bind, tables=[MigrationData.__table__])
|
db.bind, tables=[MigrationData.__table__])
|
||||||
|
|
||||||
|
|
||||||
|
##########################
|
||||||
|
# Random utility functions
|
||||||
|
##########################
|
||||||
|
|
||||||
|
|
||||||
|
def atomic_update(table, query_dict, update_values):
|
||||||
|
table.find(query_dict).update(update_values,
|
||||||
|
synchronize_session=False)
|
||||||
|
Session.commit()
|
||||||
|
@ -21,6 +21,7 @@ except ImportError:
|
|||||||
|
|
||||||
if use_sql:
|
if use_sql:
|
||||||
from mediagoblin.db.sql.fake import ObjectId, InvalidId, DESCENDING
|
from mediagoblin.db.sql.fake import ObjectId, InvalidId, DESCENDING
|
||||||
|
from mediagoblin.db.sql.util import atomic_update
|
||||||
else:
|
else:
|
||||||
from mediagoblin.db.mongo.util import \
|
from mediagoblin.db.mongo.util import \
|
||||||
ObjectId, InvalidId, DESCENDING, atomic_update
|
ObjectId, InvalidId, DESCENDING, atomic_update
|
||||||
|
Loading…
x
Reference in New Issue
Block a user