我在 heroku 中部署了一个 django 应用程序。现在一切正常。但我需要在现有表中再添加一个字段。我在 models.py 文件中添加了架构更改。我尝试使用以下命令进入 dbshell。
heroku run python manage.py dbshell
但它显示以下错误消息。
错误:您似乎没有安装“psql”程序或在您的路径上。
我该如何解决这个问题?如何将更改添加到数据库中?请帮我。
我在 heroku 中部署了一个 django 应用程序。现在一切正常。但我需要在现有表中再添加一个字段。我在 models.py 文件中添加了架构更改。我尝试使用以下命令进入 dbshell。
heroku run python manage.py dbshell
但它显示以下错误消息。
错误:您似乎没有安装“psql”程序或在您的路径上。
我该如何解决这个问题?如何将更改添加到数据库中?请帮我。
使用heroku pg:psql而不是 manage.py dbshell ..
我不是 100% 确定 heroku (阅读:我不知道),但你遇到的问题听起来很典型:你想在 django 数据库设置后修改它。关于syncdb
:它不会改变现有表的一点关键说明。
为了修改表格,您将不得不转储所有数据,编辑模型,然后再次填写所有数据 - 多么痛苦!
但是,还有其他选择:
两个更受欢迎的选项是django-evolution和South,它们都有自己的用途、优点/缺点和复杂性。与其让您厌烦(并在此过程中窃取其他人的辛勤工作),不如将两者的详细信息传递给 SO:
目前使用 Django “Evolution”,“South”是否更好,值得切换?
(简短的回答是:使用South。它有一点学习曲线,但它确实将是在设置 django 模型(或迁移)后更改(或迁移)的最强大/完整的解决方案。
我遇到了同样的问题,并且还发现文档中缺少明确的答案。正如 Heroku 建议的那样,您的生产数据库应该与您的开发数据库相同,因此您应该能够在本地进行所有更改。
修理:
下载最新的 Postgress 应用程序,然后按照说明将其移动到 Applications 文件夹
通过在终端中键入以下内容,
将新包添加到您的路径:PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
python manage.py dbshell
- 你应该很好!