【问题标题】:How to view current database schema for Heroku app in Terminal?如何在终端中查看 Heroku 应用程序的当前数据库架构?
【发布时间】: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 应用的架构。

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails heroku terminal schema


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2016-01-22
      • 2014-02-20
      • 2022-03-23
      • 2013-05-17
      • 1970-01-01
      • 2012-02-21
      相关资源
      最近更新 更多