python - psycopg2 操作错误 : cursor does not exist

标签 python django postgresql psycopg2

我正在尝试实现服务器端游标,以便在从数据库中获取大量数据时“绕过”Django ORM 弱点。 但是我不明白应该如何定义命名游标,因为我当前的代码似乎无法正常工作。我这样定义游标:

id = 'cursor%s' % uuid4().hex
connection = psycopg2.connect('my connection string here')
cursor = connection.cursor(id, cursor_factory=psycopg2.extras.RealDictCursor)

游标似乎可以工作,因为它可以迭代并返回预期记录作为 python 字典,但是当我尝试关闭它时 (cursor.close()) 我得到异常:

psycopg2 OperationalError: cursor *the generated cursor id* does not exist

WTF?那么我用来从数据库中检索内容的对象是什么? psycopg2 是否使用后备默认(未命名)游标,因为我定义的游标在我的数据库中找不到(如果是这样......我的大问题:在使用 psycopg2 之前必须在数据库级别定义游标?)我是很困惑,你能帮帮我吗?

最佳答案

我犯了一个非常简单和愚蠢的错误,忘记在运行 ./manage 之前运行 ./manage.py makemigrations./manage.py migrate .py test 导致了这个错误。

(我知道这没有回答最初的问题,但由于这是来自 Google 的第一个结果,我想我会做出贡献。希望没关系)

关于python - psycopg2 操作错误 : cursor does not exist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19069722/

相关文章:

Django 如何使用带有静态/模板的 npm 模块

ruby-on-rails - 在 Rails 和 PostgreSQL 中完全忽略时区

java - 错误: malformed record literal: - JDBC insert data with self defined type array

Python 正则表达式负向前瞻 - 仅包含结果文本,而不包含整个文本

Python Spark,从执行器访问类静态变量

python - 值错误 : axes don't match array when loading previously saved model

java - 在 JasperServer Reports 和 Postgres 上使用 IntegerList 进行过滤

python - 如何使用github管理本地项目?

python - 如何使用 django 和 rest 框架更新用户数据?

python - 在 Django 中交叉导入