簡體   English   中英

虛榮,Rails 3 和 Heroku

[英]Vanity, Rails 3 and Heroku

我試圖讓 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 讓我失望了。

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

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

希望這對某人有所幫助,因為我幾乎把我的電腦打得一塌糊塗。

如果你在 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)

最后一點:如果您在 Heroku 上使用 ActiveRecord 和 Postgres 並且您不在共享數據庫上,則連接字符串應為:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM