From b66777ef708f60f973d333d6e289ca8b101fd553 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Wed, 21 Sep 2022 16:47:06 +0200 Subject: [PATCH] fix handling get_table_description in Django 4.1 as well as in DB engines other than sqlite3 --- categories/migration.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/categories/migration.py b/categories/migration.py index 13ff0c5..fc227ee 100644 --- a/categories/migration.py +++ b/categories/migration.py @@ -1,6 +1,6 @@ """Adds and removes category relations on the database.""" from django.apps import apps -from django.db import connection, transaction +from django.db import DatabaseError, connection, transaction from django.db.utils import ProgrammingError @@ -25,7 +25,10 @@ def field_exists(app_name, model_name, field_name): field = model._meta.get_field(field_name) if hasattr(field, "m2m_db_table"): m2m_table_name = field.m2m_db_table() - m2m_field_info = connection.introspection.get_table_description(cursor, m2m_table_name) + try: + m2m_field_info = connection.introspection.get_table_description(cursor, m2m_table_name) + except DatabaseError: # Django >= 4.1 throws DatabaseError + m2m_field_info = [] if m2m_field_info: return True