Django 4.2 和 Spatialite 5.0.1 出现“没有这样的列:rowid”错误

问题描述 投票:0回答:1

我正在将应用程序从 Django 3.2 升级到 4.2,它在生产中使用 postgis,并在运行单元测试时使用

django.contrib.gis.db.backends.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
错误。还有其他人遇到过这个吗?我在 Fedora Linux 上使用 Django 4.2.11、sqlite 3.42.0、libspatialite 5.0.1、python 3.12.2。

django sqlite spatialite
1个回答
0
投票

也许这个答案,最初是由spatialite开发者建议的,可以帮助你吗?

© www.soinside.com 2019 - 2024. All rights reserved.