From 8b3b5a69b504786be55a1a8ef61fc9040ca7aa64 Mon Sep 17 00:00:00 2001 From: Alex Zaslavsky Date: Wed, 20 Sep 2023 10:32:40 -0700 Subject: [PATCH] fix(backup): Suppress verbose SQL error reporting --- src/sentry/backup/imports.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/sentry/backup/imports.py b/src/sentry/backup/imports.py index 95cf59934df4f4..1d183cdc6a9c70 100644 --- a/src/sentry/backup/imports.py +++ b/src/sentry/backup/imports.py @@ -167,15 +167,18 @@ def _import( errs = {field: error for field, error in e.message_dict.items()} raise DjangoRestFrameworkValidationError(errs) from e - sequence_reset_sql = StringIO() - + sql = StringIO() + err = StringIO() for app in apps.get_app_configs(): - management.call_command( - "sqlsequencereset", app.label, "--no-color", stdout=sequence_reset_sql - ) - + management.call_command("sqlsequencereset", app.label, "--no-color", stdout=sql, stderr=err) with connection.cursor() as cursor: - cursor.execute(sequence_reset_sql.getvalue()) + cursor.execute(sql.getvalue()) + + errored = "\n".join( + [li for li in err.getvalue().splitlines() if "No sequences found." not in li] + ).strip() + if errored: + raise ValueError(f"Encountered SQL errors:\n\n {errs}") def import_in_user_scope(