def execute_transaction(sql, output=False, database='default'): "A transaction wrapper for executing a list of SQL statements" my_connection = connection using_args = {} if is_multi_db(): if not database: database = DEFAULT_DB_ALIAS my_connection = connections[database] using_args['using'] = database try: # Begin Transaction transaction.enter_transaction_management(**using_args) transaction.managed(True, **using_args) cursor = my_connection.cursor() # Perform the SQL if output: write_sql(sql, database) execute_sql(cursor, sql) transaction.commit(**using_args) transaction.leave_transaction_management(**using_args) except Exception: transaction.rollback(**using_args) raise
def execute_transaction(sql, output=False): "A transaction wrapper for executing a list of SQL statements" try: # Begin Transaction transaction.enter_transaction_management() transaction.managed(True) cursor = connection.cursor() # Perform the SQL if output: write_sql(sql) execute_sql(cursor, sql) transaction.commit() transaction.leave_transaction_management() except Exception, ex: transaction.rollback() raise ex
def execute_transaction(sql, database=DEFAULT_DB_ALIAS): """Execute SQL in a new transaction. Args: sql (unicode or list): The SQL to execute. This must be a value accepted by :py:func:`~django_evolution.utils.execute_sql`. database (unicode, optional): The name of the database to use. """ connection = connections[database] try: with connection.constraint_checks_disabled(): with atomic(using=database): execute_sql(connection.cursor(), sql, database) except Exception as e: logging.exception('Error executing SQL %s: %s', sql, e) raise
def execute_transaction(sql, output=False, database='default'): "A transaction wrapper for executing a list of SQL statements" my_connection = connection out_sql = [] if not database: database = DEFAULT_DB_ALIAS my_connection = connections[database] try: with atomic(using=database): cursor = my_connection.cursor() # Perform the SQL if output: out_sql.extend(write_sql(sql, database)) execute_sql(cursor, sql, database) except Exception, e: logging.error('Error executing SQL %s: %s' % (sql, e)) raise
if is_multi_db(): from django.db import connections if confirm.lower() == 'yes': # Begin Transaction transaction.enter_transaction_management(**using_args) transaction.managed(flag=True, **using_args) if is_multi_db(): cursor = connections[database].cursor() else: cursor = connection.cursor() try: # Perform the SQL execute_sql(cursor, sql) # Now update the evolution table version = Version(signature=current_signature) version.save(**using_args) for evolution in new_evolutions: evolution.version = version evolution.save(**using_args) transaction.commit(**using_args) except Exception, ex: transaction.rollback(**using_args) raise CommandError('Error applying evolution: %s' % str(ex))