如何在Heroku中设置PostgreSQL数据库

4
我完全不懂Heroku和Postgres,正在试图弄清楚如何在Heroku的Ruby应用中设置和访问Postgres数据库。
我不确定如何进行设置。 我找到了一些有关使用命令的信息:
rake db:create
我在哪里输入这个命令? 我对此完全一无所知。
希望您能帮忙告诉我如何在Heroku中设置/访问Postgres数据库。
谢谢。

你说这是为 Ruby 应用程序准备的,但你提供的代码是特定于 Rails 的。这是为 Rails 应用程序吗? - redhotvengeance
我刚刚找到了这个例子,但它是一个Ruby应用程序。 - Dman100
2个回答

2

如果您正在构建的Ruby应用程序类型、您可能使用的gems或您可能构建的框架没有相关信息,那么将无法完全指导您如何连接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>
  • 通过环境变量ENV['DATABASE_URL'],您可以从Ruby连接到数据库。
  • 通过git部署应用程序:git push heroku master

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


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

1
首先,您是否使用Heroku工具包?(命令行工具?)
您也可以从网站上进行操作,但是使用工具包,您可以输入heroku addons:add heroku-postgresql:dev --app *your app name* 当您将应用程序部署到Heroku时,Heroku将自动将数据库注入到您的应用程序的database.yml中。
最后,您需要将生产数据库迁移到当前迁移。您可以再次使用工具包远程执行此操作:
$ heroku run rake db:migrate

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


嗨Jordan,感谢回复。我没有使用Heroku工具包。我该如何从网站上操作呢?如果不行的话,我可以下载工具包并尝试在那里操作。感谢你的帮助。 - Dman100

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