你能在追随者数据库上运行heroku控制台吗?

时间:2013-09-27 02:54:37

标签: ruby-on-rails heroku

我在heroku上使用数据库和关注数据库部署了一个ruby on rails应用程序。

我通常会使用“heroku run rails console”来查看数据,我想知道是否有一种方法可以在关注数据库上执行此操作,因此我不会意外地编写/删除内容。我知道这应该很简单,但我似乎无法找到它的文档。

谢谢!

5 个答案:

答案 0 :(得分:4)

您可以从本地控制台执行此操作。把它点起来:

rails console

然后,您需要heroku上的关注者数据库的连接信息。您可以从https://postgres.heroku.com/databases/检索此内容。只需单击相关数据库并使用以下信息分配哈希:

follower_db = {:adapter  => "postgresql",
 :host     => "myhost",
 :username => "myuser",
 :password => "mypass",
 :database => "somedatabase"}

现在从控制台连接到此远程数据库:

ActiveRecord::Base.establish_connection(follower_db)

现在,您在控制台中输入的任何查询都将在此DB上运行。

答案 1 :(得分:1)

如果您担心意外删除内容,请使用沙盒标志运行控制台

heroku run console --sandbox --app app-name

您的更改将在会话结束时回滚。

答案 2 :(得分:1)

这将使用Heroku应用程序中FOLLOWER_DATABASE_URL环境变量的关注者数据库凭据来启动Rails控制台,该控制台直接连接到关注者而不是提升的数据库。通常情况下,Rails设置为默认从DATABASE_URL读取,这只是在控制台会话期间将其设置为不同的值。

heroku run 'DATABASE_URL=$FOLLOWER_DATABASE_URL rails console'

答案 3 :(得分:0)

控制台肯定有它的位置,但是如果我想检查数据库中的数据是什么,那么我更愿意直接看它,而不会阻止ActiveRecord等。我发现很多实例,使用控制台要求你检查生成的SQL,以确保没有范围(例如)滑入。

我建议您尝试养成使用SQL接口(可能是PgAdminIII)而不是控制台的习惯 - 如果您不想从客户端连接麻烦,Heroku dataclip甚至可以工作(虽然psql连接字符串是从数据库页面给你的。)

答案 4 :(得分:-1)

数据库关注者是master数据库的只读副本,它与master数据库数据保持同步。随着在master数据库中提交写入和其他数据修改,更改将实时流式传输到跟随者数据库。

来源 - https://devcenter.heroku.com/articles/heroku-postgres-follower-databases