diff --git a/src/pretix/base/management/commands/shell_scoped.py b/src/pretix/base/management/commands/shell_scoped.py index 7f598a3ff5..1915ffb765 100644 --- a/src/pretix/base/management/commands/shell_scoped.py +++ b/src/pretix/base/management/commands/shell_scoped.py @@ -19,11 +19,13 @@ # You should have received a copy of the GNU Affero General Public License along with this program. If not, see # . # +import logging import sys from django.apps import apps from django.core.management import call_command from django.core.management.base import BaseCommand +from django.db import connection from django_scopes import scope, scopes_disabled @@ -33,6 +35,13 @@ class Command(BaseCommand): parser.parse_args = lambda x: parser.parse_known_args(x)[0] return parser + def add_arguments(self, parser): + parser.add_argument( + '--print-sql', + action='store_true', + help='Print all SQL queries.', + ) + def handle(self, *args, **options): try: from django_extensions.management.commands import shell_plus # noqa @@ -47,6 +56,11 @@ class Command(BaseCommand): with scopes_disabled(): return call_command(cmd, *args, **options) + if options['print_sql']: + connection.force_debug_cursor = True + logger = logging.getLogger("django.db.backends") + logger.setLevel(logging.DEBUG) + lookups = {} for flag in flags: lookup, value = flag.lstrip("-").split("=")