ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 南无法创建新字段,因为字段不存在

2019-06-12 19:55:28  阅读:320  来源: 互联网

标签:python django django-south


我正在尝试使用South将新的URLField添加到模型中,例如:

class Document(models.Model):
    text = models.TextField()
    reference_page = models.URLField(blank=True, null=True)
    source_page = models.URLField(blank=True, null=True) # new field

但是,当我运行python manage.py schemamigration myapp –auto时,我得到错误:

DatabaseError: column myapp_document.source_page does not exist
LINE 1: ...ext", "myapp_document"."reference_page", "myapp_doc...

我正在使用PostgreSQL作为我的数据库后端.我正确地初始化了我的南方应用程序,并且已经为它运行了迁移.我确保我的Django和South安装是最新的.

为什么现在会给我这个错误?

编辑:奇怪的是,如果我在数据库中手动创建了列,则schemamigration调用成功,但当然迁移调用失败,直到我手动删除列.这很奇怪.

解决方法:

我已经处理了这个问题几个月了. montiniz在对另一个答案的评论中分享的link有一个0投票的答案解决了我的问题!我在这里张贴它是为了帮助别人……建立知识社区以及所有这些.

问题:schemamigration [app] –auto失败,抱怨缺少列(通常是您尝试迁移架构的新字段…)

在我的情况下,它只会在修改Workgroup模型(一个models.py模型)而不是任何其他模型时抱怨.

解决方案:查找另一个在ForeignKey关系中具有default关键字参数的模型,该关系引用未能迁移的模型.

workgroup = models.ForeignKey(‘core.Workgroup’,default = get_default_workgroup,null = True)

如果删除default关键字参数,则运行管理命令,它应该成功.然后,只需添加原始默认参数.

标签:python,django,django-south
来源: https://codeday.me/bug/20190612/1227943.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有