7

我试图让 Vanity 与 Heroku 和我的 Rails 3 应用程序很好地配合使用。目前,使用 Pow 和本地 Redis 服务器在本地一切正常,但是当我使用 RedisToGo 插件推送到 Heroku 时,似乎没有任何东西可以让服务器运行,我只是收到错误消息:getaddrinfo: Name or service not known

这是我的 config/vanity.yml 文件:

staging:
  adapter: redis
  host: <%= ENV["REDISTOGO_URL"] %> 

和我的配置/初始化程序/redis.rb:

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

我也试过使用实际的redis://<actualusername>:actualpassword@actualserver.com:9274,它给出了同样的错误。我也尝试过使用和不使用redis://.

有没有人让 Vanity 与 Heroku 和 Rails 3 一起工作?我错过了一些非常明显的东西吗?到目前为止,我的 Google-fu 让我失望了。

4

3 回答 3

9

是的,这很愚蠢,好吧。你不使用host,你使用connection

staging:
  adapter: redis
  connection: <%= ENV["REDISTOGO_URL"] %> 

希望这对某人有所帮助,因为我几乎把我的电脑打得一塌糊涂。

于 2011-06-12T05:11:10.767 回答
4

如果你在 Heroku 上使用 Postgres,你需要做一些不同的事情。这是我的 hack (config/vanity.yml):

production:
  adapter: active_record
  active_record_adapter: postgresql

  <% username, password, host, database = ENV['DATABASE_URL'].scan(%r{//(.*):(.*)@(.*)/(.*)}).first %>
  host:     <%= host %>
  username: <%= username %>
  password: <%= password %>
  database: <%= database %>

而且您必须强制 Vanity 不使用 Redis 适配器(如果您问我,这是一个错误)。把它放在一个初始化器中:

Vanity.playground.establish_connection(Rails.env.to_sym)
于 2011-06-28T15:35:55.167 回答
3

最后一点:如果您在 Heroku 上使用 ActiveRecord 和 Postgres 并且您不在共享数据库上,则连接字符串应该是:

username, password, host, port, database = ENV['DATABASE_URL'].scan(%r{//(.*):(.*)@(.*):(.*)/(.*)}).first
于 2012-02-22T23:54:08.637 回答