如何在终端中查看 Heroku 应用程序的当前数据库架构?
Posted
技术标签:
【中文标题】如何在终端中查看 Heroku 应用程序的当前数据库架构?【英文标题】:How to view current database schema for Heroku app in Terminal? 【发布时间】:2013-04-03 22:04:57 【问题描述】:我正在尝试在终端 (Mac OS X Lion) 中查看我的 Heroku 应用程序架构,并偶然发现了一个执行此操作的命令。在终端中,我运行heroku run more db/schema.rb
,但它似乎显示了较旧的架构版本。我刚刚迁移了 Heroku 数据库,我注意到没有列出任何新列。
我似乎在 Heroku 的文档中找不到任何有用的信息。有谁知道查看 Heroku 应用当前数据库模式的命令?
顺便说一句,我继承了应用程序的代码,由于某种原因,所有迁移文件都被注释掉了(可能有 40 多个文件),所以我不能只在本地运行 rake db:migrate
来更新架构;因此,我想直接查看 Heroku 应用的架构。
有什么建议吗?
【问题讨论】:
【参考方案1】:您可以运行 heroku pg:psql
来启动 Postgres 控制台,然后发出 \d
来查看所有表格,并发出 \d tablename
来查看特定表格的详细信息。
【讨论】:
这是完美的。谢谢! 要退出,请输入“q”并回车。 我必须使用 \q 退出。【参考方案2】:对于 Rails 架构,请尝试:
$ heroku run "bundle exec rake db:schema:dump && cat db/schema.rb"
【讨论】:
Heroku docs 声明“写入磁盘的 Rake 任务,例如 rake db:schema:dump,与 Heroku 的临时文件系统不兼容。”这个命令不会失败吗? 它有效。在run
dyno 启动时,您可以依赖现有的文件,它本身就足够长,可以成为cat
'd。
最佳答案:它将完整的 Heroku 架构复制到您的终端
就是这样。非常感谢您回答这个问题。我意识到我在 heroku 上的架构与我的架构的最新版本不匹配。我采取了两个步骤使它们匹配。我通过运行heroku run bundle exec rails db:migrate:status -a application-name
仔细检查了它,这表明我最近的迁移已关闭。然后,我运行 heroku run bundle exec rails db:migrate -a application-name
来运行迁移!希望这对将来的某人有所帮助。【参考方案3】:
你可以使用rateaux:
rake db:view:schema
【讨论】:
以上是关于如何在终端中查看 Heroku 应用程序的当前数据库架构?的主要内容,如果未能解决你的问题,请参考以下文章
尝试迁移数据库时,Django 应用程序在 Heroku 上崩溃
如何查看在 heroku 上运行的 rails 服务器,以便在发送 REST 请求时查看完整输出?
Heroku Review Apps:复制数据库以查看应用程序