如何更新heroku django应用程序的架构更改?

时间:2013-03-06 18:48:39

标签: database django postgresql deployment heroku

我在heroku中部署了一个django应用程序。现在一切都很好。但我需要在现有表中再添加一个字段。我将模式更改添加到models.py文件中。我尝试使用以下命令输入dbshel​​l。

    heroku run python manage.py dbshell

但它显示以下错误消息。

错误:您似乎没有安装'psql'程序或在您的路径上。

我该如何解决这个问题?如何将更改添加到数据库?请帮帮我。

3 个答案:

答案 0 :(得分:2)

使用 heroku pg:psql 而不是manage.py dbshel​​l ..

答案 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建议的那样,您的生产数据库应该与您的开发数据库相同,因此您应该能够在本地进行所有更改。

修复:

  1. Download最新的Postgress应用,并按照说明将其移至“应用”文件夹

  2. Add the new bundle to your path在终端中输入以下内容: PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"

  3. 返回虚拟环境并运行python manage.py dbshell - 你应该很好!