昨天我从Windows 7切换到Linux Mint 12.到目前为止,除了Django和PostgreSQL的一些问题外,一切都很顺利。
我运行一些代码来读取文件并将信息写入数据库。在Windows上它运行顺利,没有任何例外,但是,在Linux上我经常得到这个:
django.db.utils.DatabaseError: current transaction is aborted, commands ignored until end of transaction block
日志结束:http://pastebin.com/Uf1Jb3fe
脚本通过终端调用,导入django设置然后使用ORM,但我认为情况不是这样,因为在Windows中一切都很好。
那么,我该怎么办?顺便说一句,尝试以非常详细的方式解释解决方案,因为我还是Linux中的新手。
答案 0 :(得分:1)
消息:当前事务被中止,命令被忽略,直到事务块结束总是由先前的错误引起。在这种情况下,您发布的日志中的第一个INSERT导致重复密钥违规。
2012-02-05 13:10:58 EET LOG:声明:INSERT INTO “upgrades_manastone”(“name”,“slug”,“db_id”,“description”, “title_colour”,“worth”,“level”)VALUES('Stamina XIII','',0,'', 'white',1,13)返回“upgrades_manastone”。“id”
2012-02-05 13:10:58 EET ERROR:重复键值违反了唯一约束 “upgrades_manastone_slug_key”
解决重复密钥违规问题,一切都应该没问题。