MultipleDatabaseSupport: naive-transaction.diff
| File naive-transaction.diff, 3.1 kB (added by Jon Dugan <jdugan@x1024.net>, 2 years ago) |
|---|
-
db/models/base.py
old new 195 195 backend.get_pk_default_value())) 196 196 if self._meta.has_auto_field and not pk_set: 197 197 setattr(self, self._meta.pk.attname, backend.get_last_insert_id(cursor, self._meta.db_table, self._meta.pk.column)) 198 transaction.commit_unless_managed( )198 transaction.commit_unless_managed(connection=self._meta.connection) 199 199 200 200 # Run any post-save hooks. 201 201 dispatcher.send(signal=signals.post_save, sender=self.__class__, instance=self) … … 377 377 backend.quote_name(rel_field.m2m_column_name()), 378 378 backend.quote_name(rel_field.m2m_reverse_name())) 379 379 cursor.executemany(sql, [(this_id, i) for i in id_list]) 380 transaction.commit_unless_managed( )380 transaction.commit_unless_managed(connection=self._meta.connection) 381 381 382 382 ############################################ 383 383 # HELPER FUNCTIONS (CURRIED MODEL METHODS) # … … 398 398 backend.quote_name(ordered_obj.pk.column)) 399 399 rel_val = getattr(self, ordered_obj.order_with_respect_to.rel.field_name) 400 400 cursor.executemany(sql, [(i, rel_val, j) for i, j in enumerate(id_list)]) 401 transaction.commit_unless_managed( )401 transaction.commit_unless_managed(connection=self._meta.connection) 402 402 403 403 def method_get_order(ordered_obj, self): 404 404 connection_info = ordered_obj.connection_info -
db/transaction.py
old new 111 111 return state[thread_ident][-1] 112 112 return settings.TRANSACTIONS_MANAGED 113 113 114 def managed( flag=True):114 def managed(connection=connection,flag=True): 115 115 """ 116 116 Puts the transaction manager into a manual state: managed transactions have 117 117 to be committed explicitely by the user. If you switch off transaction … … 128 128 else: 129 129 raise TransactionManagementError("This code isn't under transaction management") 130 130 131 def commit_unless_managed( ):131 def commit_unless_managed(connection=connection): 132 132 """ 133 133 Commits changes if the system is not in managed transaction mode. 134 134 """ … … 137 137 else: 138 138 set_dirty() 139 139 140 def rollback_unless_managed( ):140 def rollback_unless_managed(connection=connection): 141 141 """ 142 142 Rolls back changes if the system is not in managed transaction mode. 143 143 """ … … 146 146 else: 147 147 set_dirty() 148 148 149 def commit( ):149 def commit(connection=connection): 150 150 """ 151 151 Does the commit itself and resets the dirty flag. 152 152 """ 153 153 connection._commit() 154 154 set_clean() 155 155 156 def rollback( ):156 def rollback(connection=connection): 157 157 """ 158 158 This function does the rollback itself and resets the dirty flag. 159 159 """
