gpt4 book ai didi

django - GeoDjango - LayerMapping : An error occurred in the current transaction. 在 'atomic' block 结束之前你不能执行查询

转载 作者:行者123 更新时间:2023-12-01 15:48:25 24 4
gpt4 key购买 nike

我正在使用 LayerMapping 将 shapefile 添加到数据库中。这是我正在使用的代码。 shapefile 约为 100MB,因此需要添加大量多边形。

mapping = {'name': 'OBJECTID', 'poly': 'POLYGON'}
lm = LayerMapping(TestGeo, 'toronto geo/PROPERTY_BOUNDARIES_WGS84.shp', mapping)
lm.save(verbose=True)

运行上面的代码后,我会看到大约 10 秒的成功消息,显示类似 Saved: 'name': 12345 的内容。然后 10 秒后,消息变成:

保存失败:{'name': 12345, 'poly': (....)}: 当前交易发生错误。在“原子” block 结束之前,您无法执行查询。

它在显示错误消息后仍然继续运行(我猜它移动到下一个多边形对象上)。在它遍历每个多边形之后,尽管前几百个左右的多边形显示成功消息,但 shapefile 中的多边形都没有被保存。

我遇到了 a similar error但内容似乎并不相关。

知道为什么会这样吗?

最佳答案

我也有类似的问题。事实证明我的模型配置错误,并且在保存功能的第一次迭代中出现了错误。我猜某种数据库锁仍然存在,随后的调用给你带来了原子 block 问题?尝试运行 lm.save(verbose=True, strict=True) 来捕获任何 IntegrityError

关于django - GeoDjango - LayerMapping : An error occurred in the current transaction. 在 'atomic' block 结束之前你不能执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50126367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com