Commit c4e0dc6b authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

Fixed #13656 -- Ensure that the management commands use the right database for...

Fixed #13656 -- Ensure that the management commands use the right database for transaction start/end commands. Thanks to Alex Gaynor for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@13311 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent adc94585
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -218,13 +218,15 @@ class BaseCommand(object):
            output = self.handle(*args, **options)
            if output:
                if self.output_transaction:
                    # This needs to be imported here, because it relies on settings.
                    from django.db import connection
                    # This needs to be imported here, because it relies on
                    # settings.
                    from django.db import connections, DEFAULT_DB_ALIAS
                    connection = connections[options.get('database', DEFAULT_DB_ALIAS)]
                    if connection.ops.start_transaction_sql():
                        print self.style.SQL_KEYWORD(connection.ops.start_transaction_sql())
                print output
                if self.output_transaction:
                    print self.style.SQL_KEYWORD("COMMIT;")
                    print self.style.SQL_KEYWORD(connection.ops.end_transaction_sql())
        except CommandError, e:
            sys.stderr.write(smart_str(self.style.ERROR('Error: %s\n' % e)))
            sys.exit(1)
+5 −0
Original line number Diff line number Diff line
@@ -353,6 +353,11 @@ class BaseDatabaseOperations(object):
        """
        return "BEGIN;"

    def end_transaction_sql(self, success=True):
        if not success:
            return "ROLLBACK;"
        return "COMMIT;"

    def tablespace_sql(self, tablespace, inline=False):
        """
        Returns the SQL that will be appended to tables or rows to define