OperationalError:(1054,“'字段列表'中的未知列'example.example_field'”)
Posted
技术标签:
【中文标题】OperationalError:(1054,“\'字段列表\'中的未知列\'example.example_field\'”)【英文标题】:OperationalError: (1054, "Unknown column 'example.example_field' in 'field list'")OperationalError:(1054,“'字段列表'中的未知列'example.example_field'”) 【发布时间】:2017-06-16 05:59:11 【问题描述】:我的Example
模型曾经有一个十进制字段example_field
定义为:
sample_field = models.DecimalField(decimal_places=1, max_digits=3, blank=True, null=True)
我决定从Example
模型以及我使用example_object.example_field
的代码中的任何地方删除此字段。在makemigrations
和migrate
之后,一切正常,我向远程分支发出了拉取请求。
然后我切换到另一个本地分支并得到这个错误:
OperationalError: (1054, "Unknown column 'example.example_field' in 'field list'")
这是有道理的,因为这个分支仍然使用example_object.example_field
。但是,在远程分支接受了拉取请求之后。从远程分支拉出后,我仍然遇到同样的错误。
接受 PR 后,远程分支部署在 AWS 上。两个实例之一工作正常,但另一个具有相同的OperationalError
。
【问题讨论】:
请将完整的堆栈跟踪发布到您的错误中。 【参考方案1】:在任何一种情况下(AWS 或本地分支),第一步都是确保您更新的代码实际上已正确部署在实例上。
导航到您的项目
cd /path/to/django/project
检查文件中的Example
类定义:
grep -A20 'class Example\(' models.py
确认您的字段实际上已从两个实例或本地分支的代码中删除。
在您的项目中进行全局搜索以使用example_field
:
cd /path/to/django/project
find . -name '*.py' | xargs grep -Ri example_field
删除所有 pyc 文件并重新启动您的应用服务器:
cd /path/to/django/project
find . -name '*.pyc' -delete
【讨论】:
非常感谢!它完全有效!应用grep -A20 'class Example' models.py
和find . -name '*.py' | xargs grep -Ri example_field
后,我发现repo 没有适当更新。以上是关于OperationalError:(1054,“'字段列表'中的未知列'example.example_field'”)的主要内容,如果未能解决你的问题,请参考以下文章
pymysql.err.OperationalError: (1054, “Unknown column ‘云南绿A生物工程有限公司福州分公司‘ in ‘field list‘“)解决办法
sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:mytable
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2059, "Authentication pl
OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on '192.168.129.139'