OperationalError: (1054, "Unknown column 'example.example_field' in 'field list'")
OperationalError: (1054, "Unknown column 'example.example_field' in 'field list'")
我的 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
.
在任何一种情况下(AWS 或本地分支),第一步是确保您更新的代码实际上已正确部署在实例上。
导航到您的项目
cd /path/to/django/project
检查文件中的Example
class定义:
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
我的 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
.
在任何一种情况下(AWS 或本地分支),第一步是确保您更新的代码实际上已正确部署在实例上。
导航到您的项目
cd /path/to/django/project
检查文件中的
Example
class定义: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