如何在终端中查看 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:复制数据库以查看应用程序

GitHub Actions:如何通过终端访问当前构建的日志

如何在已部署的 Heroku 应用上查看文件和文件结构

text 如何在已部署的Heroku应用程序中查看文件