【问题标题】:How to update schema changes to heroku django app?如何更新heroku django应用程序的架构更改?
【发布时间】:2013-02-21 17:26:36
【问题描述】:

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

    heroku run python manage.py dbshell

但它显示以下错误消息。

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

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

【问题讨论】:

  • 我猜你正在运行 postgres.. 这个错误意味着你需要安装 postgres sql 客户端并将它放在你的路径中。
  • 使用南方!看在上帝的份上!

标签: database django postgresql deployment heroku


【解决方案1】:

使用 heroku pg:psql 代替 manage.py dbshel​​l..

【讨论】:

    【解决方案2】:

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

    修复:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      不过,还有其他选择:

      两个比较流行的选项是 django-evolutionSouth,它们都有自己的用途、优缺点和复杂性。与其让你厌烦(并在此过程中偷走别人的辛勤工作),我只想传递一个来自 SO 的有用问题:

      Currently using Django "Evolution", is "South" better and worth switching?

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

      【讨论】:

        猜你喜欢
        • 2016-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-28
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多