0

我在 heroku 中部署了一个 django 应用程序。现在一切正常。但我需要在现有表中再添加一个字段。我在 models.py 文件中添加了架构更改。我尝试使用以下命令进入 dbshel​​l。

    heroku run python manage.py dbshell

但它显示以下错误消息。

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

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

4

3 回答 3

2

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

于 2014-09-16T08:53:45.883 回答
1

我不是 100% 确定 heroku (阅读:我不知道),但你遇到的问题听起来很典型:你想在 django 数据库设置后修改它。关于syncdb:它不会改变现有表的一点关键说明。

为了修改表格,您将不得不转储所有数据,编辑模型,然后再次填写所有数据 - 多么痛苦!

但是,还有其他选择:

两个更受欢迎的选项是django-evolutionSouth,它们都有自己的用途、优点/缺点和复杂性。与其让您厌烦(并在此过程中窃取其他人的辛勤工作),不如将两者的详细信息传递给 SO:

目前使用 Django “Evolution”,“South”是否更好,值得切换?

(简短的回答是:使用South。它有一点学习曲线,但它确实将是在设置 django 模型(或迁移)后更改(或迁移)的最强大/完整的解决方案。

于 2013-03-06T19:05:52.060 回答
0

我遇到了同样的问题,并且还发现文档中缺少明确的答案。正如 Heroku 建议的那样,您的生产数据库应该与您的开发数据库相同,因此您应该能够在本地进行所有更改。

修理:

  1. 下载最新的 Postgress 应用程序,然后按照说明将其移动到 Applications 文件夹

  2. 通过在终端中键入以下内容, 将新包添加到您的路径:PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"

  3. 回到你的虚拟环境并运行python manage.py dbshell- 你应该很好!
于 2014-04-10T20:34:00.993 回答