如何在终端中查看Heroku应用程序的当前数据库架构?

40

我试图在终端(Mac OS X Lion)中查看我的Heroku应用程序的模式,并发现了一个可以做到这一点的命令。在终端中,我运行heroku run more db/schema.rb,但它似乎显示了旧的模式版本。我刚刚迁移了Heroku数据库,我注意到没有列出任何新列。

我在Heroku的文档中找不到任何有用的信息。是否有人知道一个命令可以查看Heroku应用程序的当前数据库模式?

顺便说一句,我继承了该应用程序的代码,由于某种原因,所有迁移文件都被注释掉了(可能有40多个文件),因此我无法直接在本地运行rake db:migrate更新模式;因此,我想直接查看Heroku应用程序的模式。

有什么建议吗?

3个回答

79
您可以运行 heroku pg:psql 来启动 Postgres 控制台,然后输入 \d 查看所有表格,以及输入 \d tablename 查看特定表格的详细信息。

4
退出,请输入 "q" 并按回车键。 - Timmy Von Heiss
我不得不使用 \q 来退出。 - Stonewall Thomas

34

要创建一个 Rails 数据库架构,请尝试以下命令:

$ heroku run "bundle exec rake db:schema:dump && cat db/schema.rb"

Heroku的文档指出:“写入磁盘的Rake任务(例如rake db:schema:dump)与Heroku的临时文件系统不兼容。”使用该命令会失败吗? - vich
2
它可以工作。您可以依赖文件存在于“run” dyno 上,这在本质上足够长,以便进行“cat”。 - kch
1
最佳答案:它将完整的Heroku模式复制到您的终端。 - user3763682
就是这样。非常感谢您的回答。我意识到我的Heroku模式与我的模式的最新版本不匹配。我采取了两个步骤来使它们匹配。我通过运行 heroku run bundle exec rails db:migrate:status -a application-name 来进行了双重检查,这向我展示了我的最新迁移已经下降了。然后,我运行了 heroku run bundle exec rails db:migrate -a application-name 来运行该迁移!希望这能帮助未来的某个人。 - boyd
对于像我一样认为这可能会影响应用程序的人,它不会影响生产文件。 您需要收集cat dump的结果,那将是您的schema.rb。 - Carlos J García

1
你可以使用 rateaux
rake db:view:schema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接