我在我的模型中添加了一个字段“nearbyzips”,现在我无法克服这些错误。这些是我采取的步骤。
manage.py sqlclear accounts
manage.py syncdb
我从这两个命令中没有收到任何错误,但是只要运行 manage.py check_permissions,我就会得到:
ProgrammingError: column accounts.my_profile.nearbyzips" does not exist
出于绝望,我还安装了 South(即使我不想使用它),并按照教程将现有项目转换为使用 South。这也不起作用,所以我从我安装的应用程序中删除了南并删除了我的帐户文件夹中的迁移文件夹。
我对'manage.py sqlclear accounts'的理解是它会删除实际的数据库表,然后syncdb会重建它。这似乎没有做它应该做的事情,否则会消除我认为的错误。我所做的只是添加一个模型字段,这应该不难。
有没有人有其他建议?我已经阅读了无数关于这个主题的堆栈溢出帖子,我正在阅读的唯一真正的解决方案是使用我已经完成的 sqlclear,所以我担心就解决这个问题而言我已经走到了死胡同。
最佳答案
manage.py sqlclear
只打印 SQL DROP
操作符,但不执行它们。要真正删除应用程序的表,您需要执行这些 DROP:
python manage.py sqlclear accounts | python manage.py dbshell
要在不删除表的情况下添加列,您可以执行
sql
命令,然后将字段定义复制到 ALTER TABLE
运算符(operator):echo "ALTER TABLE accounts_my_profile ADD COLUMN nearbyzips CHAR(100);" | python manage.py dbshell
关于django - 添加模型字段后如何解决 "ProgrammingError: Column does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28531889/