Django使用inspectdb无法对遗留数据库建模

10

我已经搭建好了一个空的Geodjango应用程序 - 我连接到我的Postgis数据库,其中我有一张名为aadf的表,我正在尝试创建一个模型。我正在使用inspectdb完成此操作。

我收到以下错误消息:

from django.contrib.gis.db import models
# Unable to inspect table 'aadf'
# The error was: sequence index must be integer, not 'slice'
# Unable to inspect table 'auth_group'
# The error was: sequence index must be integer, not 'slice'
# Unable to inspect table 'auth_group_permissions'
# The error was: sequence index must be integer, not 'slice'

** This error message repeats for multiple other tables that Django has created **

连接数据库似乎很正常,因为它可以获取相关表名。但是,它似乎也在尝试查看Django在数据库中创建的其他表,例如'auth_group'和'auth_group_permissions'。


你的 Django 版本是什么? - Ivan Starostin
我正在使用 Django 2.2。 - Jamie
你可以检查单个表格 - Endre Both
谢谢 - 不幸的是,当我只对相关表进行操作时,仍然会出现“#错误:序列索引必须是整数,而不是'slice'” 的错误。 - Jamie
1个回答

20

我遇到了这个错误,并发现使用psycopg2 2.8 (或2.8.1)导致的--降级到2.7.7就解决了。这是在Windows 10上使用Django 2.2。

编辑: 我现在看到,Django 2.2中有一个修复程序正在支持psycopg2 2.8。

编辑(2019年5月1日):今天发布了Django 2.2.1,其中添加了对psycopg2 2.8的支持修复。


1
非常感谢您的帮助。项目完全停滞,如果没有您的帮助,我将无法解决这个问题。编辑:我使用以下命令降级psycopg2 'pip install psycopg2==2.7.7 --force-reinstall' - Jamie
这个问题的Bug号是多少?跟踪修复版本会很有帮助! - myartsev
顺便说一句:使用 Django 1.11,psycopg2-2.8.5-cp38-cp38-linux_x86_64.whl 的 pip 也可以工作。 - Romain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接