我添加了一个字段' nearbyzips'到我的模型,现在我无法克服这些错误。这些是我采取的步骤。
manage.py sqlclear accounts
manage.py syncdb
我从这两个命令中得不到任何错误,但只要运行manage.py check_permissions,我就会得到:
ProgrammingError: column accounts.my_profile.nearbyzips" does not exist
我还安排南方(尽管我不想使用它)绝望,并按照教程将现有项目转换为使用South。这不起作用,所以我从已安装的应用程序中删除了南,并删除了我的帐户文件夹中的迁移文件夹。
我对'manage.py sqlclear帐户'的理解是它将删除实际的数据库表,然后syncdb将重建它。这似乎没有做它应该做的事情否则,它会消除我会假设的错误。我所做的只是添加一个模型字段,这应该不是那么困难。
有没有人有任何其他建议?我已经阅读了关于这个主题的无数堆栈溢出帖子,我读过的唯一真正的解决方案就是使用我已经完成的sqlclear,所以我担心自己已经走到了尽头至于解决这个问题。
答案 0 :(得分:5)
manage.py sqlclear
只打印SQL DROP
运算符,但不执行它们。要真正删除应用程序表,您需要执行这些DROP:
python manage.py sqlclear accounts | python manage.py dbshell
要添加列而不删除表,可以执行sql
命令,然后将字段定义复制到ALTER TABLE
运算符:
echo "ALTER TABLE accounts_my_profile ADD COLUMN nearbyzips CHAR(100);" | python manage.py dbshell
答案 1 :(得分:1)
我解决了,如果有人有同样的问题:
您必须使用heroku pg:reset DATABASE_URL
执行heroku run python manage.py syncdb
执行heroku run python manage.py migrate