Ошибки при работе с Django 4.2 и Spatialite 5

Я обновляю приложение с Django 3.2 до 4.2, которое использует postgis в продакшене и spatialite при выполнении юнит-тестов.

Запустив тесты этого приложения, я получаю следующую ошибку:

django.db.utils.OperationalError: error in trigger ISO_metadata_reference_row_id_value_insert: no such column: rowid
make: *** [django.mk:49: test] Error 1

Эта проблема задокументирована в этом тикете и, похоже, является проблемой при использовании Django 4.2 и Spatialite 5: https://code.djangoproject.com/ticket/32935

Одно из обходных решений выглядит как выполнение этой команды в базе данных spatialite:

./manage.py shell -c "import django;django.db.connection.cursor().execute('SELECT InitSpatialMetaData(1);')";

<<<Однако после выполнения этой команды я все равно получаю ошибку no such column: rowid. Кто-нибудь еще сталкивался с этим? Я использую Django 4.2.11, sqlite 3.42.0, libspatialite 5.0.1, python 3.12.2 на Fedora Linux.

Возможно, этот ответ, первоначально предложенный разработчиком spatialite, сможет вам помочь?

Проблема обычно решалась в spatialite 5.1, поэтому обновление до этой версии должно решить вашу проблему.

Ссылка: https://groups.google.com/g/spatialite-users/c/E5KwsEgP4_E/m/AG3gyl1RAgAJ

Вернуться на верх