添加模型字段后如何解决"ProgrammingError:Column不存在"

ste*_*han 6 django

我在我的模型中添加了一个字段'nearbyzips',现在我无法解决这些错误.这些是我采取的步骤.

manage.py sqlclear accounts

manage.py syncdb
Run Code Online (Sandbox Code Playgroud)

我从这两个命令中得不到任何错误,但是一旦运行manage.py check_permissions,我得到:

ProgrammingError:  column accounts.my_profile.nearbyzips" does not exist
Run Code Online (Sandbox Code Playgroud)

我还安装了南方(尽管我不想使用它),并且按照教程将现有项目转换为使用South.这不起作用,所以我从已安装的应用程序中删除了南,并删除了我的帐户文件夹中的迁移文件夹.

我对'manage.py sqlclear accounts'的理解是它将删除实际的数据库表,然后syncdb将重建它.这似乎没有做它应该做的事情否则,它会消除我会假设的错误.我所做的就是添加一个模型字段,这应该不是那么困难.

有没有人有任何其他建议?我已经阅读了关于这个主题的无数堆栈溢出帖子,我正在阅读的唯一真正的解决方案是使用我已经完成的sqlclear,所以我担心在解决这个问题上我已经走到了尽头.

cat*_*ran 5

manage.py sqlclear只打印SQL DROP运算符但不执行它们.要真正删除应用程序表,您需要执行这些DROP:

python manage.py sqlclear accounts | python manage.py dbshell
Run Code Online (Sandbox Code Playgroud)

要在不删除表的情况下添加列,可以执行sql命令,然后将字段定义复制到ALTER TABLE运算符:

echo "ALTER TABLE accounts_my_profile ADD COLUMN nearbyzips CHAR(100);" | python manage.py dbshell
Run Code Online (Sandbox Code Playgroud)