我在heroku中部署了一个django应用程序。现在一切都很好。但我需要在现有表中再添加一个字段。我将模式更改添加到models.py文件中。我尝试使用以下命令输入dbshell。
heroku run python manage.py dbshell
但它显示以下错误消息。
错误:您似乎没有安装'psql'程序或在您的路径上。
我该如何解决这个问题?如何将更改添加到数据库?请帮帮我。
答案 0 :(得分:2)
使用 heroku pg:psql 而不是manage.py dbshell ..
答案 1 :(得分:1)
我不是100%肯定heroku(阅读:我不知道)但你遇到的问题听起来很典型:你想在设置之后修改django数据库。关于syncdb
的一些关键注意事项:它将不更改现有表格。
为了修改表格,您必须转储所有数据,编辑模型,然后再次填写所有数据 - 真是太痛苦了!
然而,还有其他选择:
两个更受欢迎的选项是 django-evolution 和 South ,两者都有自己的用途,优点/缺点和复杂性。不要因为两者的细节而烦恼(并在此过程中窃取其他人的辛勤工作),我只会从SO传递一个有用的问题:
Currently using Django "Evolution", is "South" better and worth switching?
(简短的回答是:使用South。它有一点学习曲线,但它确实是改进django模型(或迁移)后最强大/完整的解决方案已经确定。
答案 2 :(得分:0)
我遇到了同样的问题,并且在文档中也找不到明确的答案。正如Heroku建议的那样,您的生产数据库应该与您的开发数据库相同,因此您应该能够在本地进行所有更改。
修复:
Download最新的Postgress应用,并按照说明将其移至“应用”文件夹
Add the new bundle to your path在终端中输入以下内容:
PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
python manage.py dbshell
- 你应该很好!