【问题标题】:how to setup postgres db in Heroku如何在 Heroku 中设置 postgres 数据库
【发布时间】:2012-12-19 10:14:39
【问题描述】:

我对 Heroku 和 Postgres 完全陌生,我正在尝试弄清楚如何在 Heroku Ruby 应用程序中设置和访问 Postgres 数据库。

我不确定如何进行设置。我找到了一些关于使用该命令的信息:

rake db:create

我在哪里输入这个命令?我对此一无所知。

任何有关如何在 Heroku 中设置/访问 Postgres 数据库的帮助将不胜感激。

谢谢。

【问题讨论】:

  • 您说这是针对 Ruby 应用程序,但您采样的代码是特定于 Rails 的。这是针对 Rails 应用程序的吗?
  • 我刚刚找到了那个例子,但它是一个 ruby​​ 应用程序。

标签: ruby postgresql heroku


【解决方案1】:

如果没有关于您正在构建什么类型的 Ruby 应用程序、您可能正在使用的 gem 或者您可能正在构建的框架的信息,就不可能完全指导您如何将您的 Ruby 应用程序连接到 Heroku Postgres数据库。但这里有几件事可以为您指明正确的方向:

  • 按照@jordan.baucke 的建议安装Heroku Toolbelt。除了添加插件之外,您还将在几乎所有与 Heroku 相关的操作中使用此工具带。只需点击链接,下载并安装。简单!
  • 现在您有了工具带,从命令行登录到您的帐户:heroku login
  • 现在制作您的应用程序。在您的应用文件夹中(在命令行上),执行:heroku apps:create <app name> -s cedar
  • 现在添加 Postgres 数据库:heroku addons:add heroku-postgresql:dev -a <app name>
  • 在 Ruby 中,您可以通过环境变量连接到数据库:ENV['DATABASE_URL']
  • 通过 git 部署应用程序:git push heroku master

从这里开始,我们真的无法为您提供任何进一步的指导,因为我们不知道您是如何与 Postgres 交互的。但上述步骤至少应该让您能够从 Heroku 应用程序连接到数据库。

【讨论】:

  • 感谢您列出的步骤。我确实安装了 Heroku Toolbelt 并且可以成功登录。对于附加步骤。已经创建了一个名为“nameless-ridge-8571”的应用程序,并且在附加组件下我有 Heroku Postgres Dev:: Jade。我是否正确,该应用程序已经创建并且 Postgres 数据库也已添加?那么,是不是只需要通过环境变量连接db然后部署呢?从哪里获取数据库 URL?我在 Heroku 云中看到了连接字符串部分。再次感谢您的帮助。我真诚地感谢它。
  • 是的,应用程序和数据库已准备就绪。环境变量ENV['DATABASE_URL'] 是一个包含所有数据库凭据的字符串。对于 Rails 应用程序,Heroku 将使用这些凭据生成一个新的database.yml。由于您正在构建一个非 Rails 应用程序,因此您需要解析字符串以提取信息。查看this Heroku doc 以查看如何执行此操作的一些示例。
  • 我对@9​​87654333@ 感到困惑。我应该从命令行运行它吗?这个我不是很清楚?我已经登录HerokuPostgres 并且可以看到应用程序和数据库。从命令提示符我可以运行heroku login 并成功登录。我还可以运行命令“heroku 应用程序”并获取相同的应用程序名称和我们组中设置该应用程序的人员的电子邮件。登录 HerokuPostgres,我看到了数据库插件,因此应用程序和数据库已准备就绪。这就是我对下一步与环境变量感到困惑的地方?感谢您的帮助。
  • ENV['DATABASE_URL'] 是您在 Ruby 中使用的实际代码。你看过我链接的文档吗?他们将向您展示如何实施的示例。基本上,db = URI.parse(ENV['DATABASE_URL']。然后,您可以引用 db.hostdb.userdb.passworddb.path[1..-1] 等值。如果您想亲自查看该字符串,请从命令行执行 heroku pg:credentials DATABASE。并查看this docthis doc - 他们有你的答案。
  • 啊,好的,刚刚通过运行:heroku pg:credentials jade --app nameless-ridge-8571 获得了凭据信息,我现在看到了凭据。
【解决方案2】:

首先,您使用的是Heroku toolbelt 吗? (命令行工具?)

您也可以在网站上执行此操作,但使用工具带,您可以输入heroku addons:add heroku-postgresql:dev --app *your app name*

当您将应用部署到 Heroku 时,Heroku 会自动将数据库注入到应用的 database.yml 中。

最后,您需要将生产数据库迁移到您当前的迁移。您可以再次使用工具带远程执行此操作:

$ heroku run rake db:migrate

这将远程连接控制台并将您的迁移拉入服务器上的生产数据库。

【讨论】:

  • 嗨乔丹,感谢您的回复。我没有使用 Heroku 工具带。我怎样才能从网站上做到这一点?如果那不可能,我可以下载工具带并从那里尝试。感谢您的帮助。
猜你喜欢
  • 2012-08-03
  • 2019-11-19
  • 2013-02-11
  • 2013-08-17
  • 2015-10-12
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 1970-01-01
相关资源
最近更新 更多