OperationalError:(1054,“字段列表'中的未知列'example.example_field'”)

时间:2017-01-30 22:43:24

标签: django amazon-web-services django-models mysql-python

我的Example模型曾经将十进制字段example_field定义为:

sample_field = models.DecimalField(decimal_places=1, max_digits=3, blank=True, null=True)

我决定从Example模型中删除此字段,并在我使用example_object.example_field的代码中的任何位置删除。在makemigrationsmigrate之后,一切运行良好,我向远程分支发出拉取请求。

然后我切换到另一个本地分支并收到此错误:

OperationalError: (1054, "Unknown column 'example.example_field' in 'field list'")

这是有道理的,因为这个分支仍然使用example_object.example_field。但是,在远程分支接受了pull请求之后。从远程分支拉出后我仍然遇到同样的错误。

远程分支在接受PR后部署在AWS上。其中一个实例工作正常,但另一个实例具有相同的OperationalError

1 个答案:

答案 0 :(得分:0)

在任何一种情况下(AWS或本地分支机构),第一步是确保您的更新代码实际上已正确部署在实例上。

  1. 导航到您的项目

    cd /path/to/django/project
    
  2. 检查文件中的Example类定义:

    grep -A20 'class Example\(' models.py
    
  3. 确认您的字段实际上已从两个实例或本地分支上的代码中删除。

  4. 在项目中进行全局搜索以使用example_field

    cd /path/to/django/project
    find . -name '*.py' | xargs grep -Ri example_field 
    
  5. 删除所有pyc文件并重新启动应用服务器:

    cd /path/to/django/project
    find . -name '*.pyc' -delete