概述
在编写数据导入脚本时,我偶然发现了默认自动提交行为的问题.我猜可能会出现其他“陷阱”.我还应该注意什么呢?
开箱即用,Django使用默认的Postgresql模式“read committed”,它将所有操作组合成一个事务,当db游标超出范围时结束.在该系列操作期间发生错误时会出现问题. Postgres希望您在继续之前发出回滚,如果不这样做,psycopg2会在您下次使用连接时抛出InternalError.如果你依赖于Django自动提交(默认),你可能不会正确回滚.
幸运的是,psycopg2支持另一种称为“autocommit”的操作模式,其中它不会设置这些事务.对于那些来自MysqL(或试图支持两者)的人来说,这给世界带来了一些理智.在1.1中,他们增加了支持以揭露它.将以下内容添加到您的设置中(如果您在主干上,则需要更改为1.2 syntax)
DATABASE_OPTIONS = { "autocommit": True,}
关于Django #3460票的讨论列出了坚韧不拔的细节.
总结
以上是编程之家为你收集整理的Django用户从MySQL迁移到PostgreSQL时应该知道什么?全部内容,希望文章能够帮你解决Django用户从MySQL迁移到PostgreSQL时应该知道什么?所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧