问题标签 [django-postgresql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
854 浏览

django - 如何调试内部错误当前事务被中止,命令被忽略直到事务块结束?

我遇到了这个错误current transaction is aborted, commands ignored until end of transaction block,回溯太长了,所以打印出似乎导致错误的行,

这是生成错误的部分(很长)

现在最让我困惑的是,这在 sqlite 上运行良好,但是当我切换到 postgresql 时,出现了这个错误。

我看过这里(DatabaseError:当前事务被中止,命令被忽略直到事务块结束)和这里(Django + Postgres:“当前事务被中止,命令被忽略直到事务块结束”)但没有白费。你建议我如何解决这个错误?

编辑:环顾四周后,我意识到错误是由正在使用的库引起的,并且从未用 postgres 测试过。

0 投票
1 回答
246 浏览

django - 将 Django/South/PostgreSQL 从按需要计算的汇总值迁移到数据库中维护的汇总值的正确方法是什么?

我的 Django 应用程序有一个用户模型,这些用户有很多事务。我的一些观点显示了所有交易金额的汇总(总和),我们称之为“总计”。到目前为止,这已经在需要显示时进行了统计。

现在,我想将这个计数添加到用户查看的每个页面......所以我更希望它来自数据库/模型字段,每个新事务都会维护它。我知道如何做到这一点:在我的用户模型中添加一个“总计”字段,根据需要更新它(使用 Django ORM F()-expressions for race-proof-ness)。到目前为止,一切都很好。

我的问题是关于设置初始“总”值,跟踪到目前为止的所有交易(在运行统计实施之前)。

我想我可以在没有新事务到达的维护窗口期间进行数据迁移,将所有 User.total 值初始化为当前计数。但是,我宁愿不这样做:我所做的最后一次类似的大数据迁移花费的时间比预期的要长。

是否有推荐的技术/技巧可以在没有长时间中断的情况下进行追赶统计,同时新交易也即将到来?

我想我可以编写追赶数据迁移,以便在部署新的计数维护代码时仅考虑阈值日期(或 id)之前的事务。(然后,我会在系统启动时运行数据迁移,并且只在迁移完成时在界面中显示新的计数,无论需要多长时间。)但是,我宁愿不编码这​​个日期/ id 阈值进入迁移源代码。是否有可用于此目的的南方元数据?

0 投票
2 回答
344 浏览

python - PostgreSQL 数据库上的 syncdb --migrate 失败。循环依赖

我正在尝试使用命令创建我的 Django 数据库的空副本

如果数据库是 sqlite3 数据库,它可以正常工作,但对于 postgres 数据库则失败。

使用 postgres,正常的 Django syncdb 创建表运行良好,但迁移部分失败。其中一个应用程序引用了另一个应用程序中的表,而另一个应用程序引用了第一个应用程序中的表,因此无论我迁移应用程序的顺序如何,我都会得到一个

我正在运行 Django 1.4,South 0.7.6,psycopg2 2.4.1,postgres 9.1 db。South 0.8、0.8.1 和 Psychopg2 2.5 也存在同样的问题。

0 投票
0 回答
776 浏览

python - 带有事务的 django 数据库路由

参考 Django 文档中关于一个应用程序中的多个数据库的示例,

https://docs.djangoproject.com/en/dev/topics/db/multi-db/#an-example

“它也没有考虑事务与数据库利用策略的交互。”

我如何处理上述交互。

场景是这样的:

我使用 postgresql 作为我的数据库。我已经设置了一个副本,并希望对“auth”表的所有读取都转到副本。按照文档,我编写了一个数据库路由器。现在,每当我尝试登录我的应用程序时,都会引发以下错误。

当 Django 尝试保存“last_login”时间时,就会发生这种情况。因为,在同一个视图中,它首先从副本中获取记录,然后尝试更新 last_login 时间。由于它发生在一个事务中,因此使用相同的数据库,即副本。

我该如何处理?

想法?

0 投票
0 回答
918 浏览

python - 多次指定错误列“数据”

在本地机器上,应用程序运行良好(使用 sqlite db)。但是当部署在 Heroku (postgresql db) 上时,它会导致以下错误

column "data" specified more than once LINE 1: ...object_object_id", "timestamp", "public", "data", "data")

更新:我认为这JSONField(blank=True, null=True).contribute_to_class(Action, 'data')是两次创建列的行——但这仅发生在 Heroku 上使用 postresql 数据库的已部署程序上。如果我注释掉这一行,该列将被创建 0 次。我还尝试更改data为以考虑保留名称mydata的可能性-但指定两次的相同问题。data"mydata"

追溯

models.py

0 投票
0 回答
429 浏览

django - South 未能为 sweetpie api 键表执行迁移

我正在尝试执行数据库迁移,以通过tastepie 和South 创建API 密钥身份验证所需的表。这需要我运行python manage.py migrate tastypie. 输出是:

我已经实现了一个自定义用户模型,CustomUser(AbstractBaseUser)到目前为止它工作得很好。在它的元类中,我设置了db_table = "custom_user".

问题似乎是 South 没有识别我的表名,而是使用默认命名方案。如果我要将失败查询中的关系从“nox_customuser”更改为“custom_user”,那么一切都应该按预期工作。

如何使用 South 进行修复?

0 投票
0 回答
456 浏览

django - 在 Django 中读取 CSV 文件,然后将其写入 DB Postgresql

如何读取 CSV 文件、解析值,然后将其输出到特定的数据库表?

这是基本问题。

这是我正在尝试做的“大图”:

我正在尝试从多个 CSV 文件(每分钟)读取,或者每分钟读取一个不断更新的 CSV 文件(每次更新都有额外的行条目)。

0 投票
0 回答
737 浏览

python - 为什么postgreSQL找不到外键

为什么 django 在创建引用刚刚创建的键的记录时报告“缺少外键错误”?

看看这段代码:

doRegister 视图在 realm.save() 处引发异常:

可以翻译的"the key (user_id)=(8) can't be found in table myapp_user"

但是用户中 id=8 的记录存在

注意:另外, id=8 在这里被回收。它已经为先前的记录提供,然后已被删除。


编辑

即使是 django 管理也无法添加引用该用户的领域记录。但奇怪的是,没有被回收的旧记录(id=1)是可以的。

我怀疑这可能与回收有关,因为有些人遇到了类似的问题(重复键):http ://www.vlent.nl/weblog/2011/05/06/integrityerror-duplicate-key-value-violates-unique-约束/IntegrityError 重复键值违反唯一约束 - django/postgres

我在下表中添加了更多信息

这是 manage.py sql 命令的输出:

这是来自 pgadmin 的表的序列化:

0 投票
2 回答
13925 浏览

django - Django Query 非常慢

我的 Django 应用程序有问题。对模型Scope的查询非常慢,经过一些调试后,我仍然不知道问题出在哪里。

当我像查询数据库一样scope = Scope.objects.get(pk='Esoterik I')需要 5 到 10 秒时。数据库的条目少于 10 个,并且主键上有一个索引,所以它太慢了。在数据库上执行等效查询时,SELECT * FROM scope WHERE title='Esoterik I';一切正常,只需要大约 50 毫秒。

如果我查询一组结果scope_list = Scope.objects.filter(members=some_user),然后调用 print(scope_list) 或遍历列表元素,则会发生同样的问题。查询本身只需要几毫秒,但元素的打印或迭代再次需要 5 到 10 秒,但集合只有两个条目。

数据库后端是 Postgresql。同样的问题出现在本地开发服务器和apache上。

这里是模型的代码:

更新

这是python分析器的输出。似乎 query.py 被调用了 160 万次——有点太多了。 python分析器输出

0 投票
0 回答
353 浏览

python - 模板上的 Django 信号数据库更改

我正在使用 Django 构建 GPS 跟踪系统,我的模板上应该有一个网格,显示汽车的实时信息(位置、vitesse、温度......)。GPS 通过解析数据并将其保存在特定表中的模块将数据发送到 Postgres 数据库。我需要的是如何让我的 Web App 实时显示数据?(当我在 Db 中插入行时,如何在网格中显示它)

我试过这个包https://pypi.python.org/pypi/django-db-signals/0.1.1,但我的 DataParser 在我的 django web 应用程序的外部,它独立于另一端工作