Тщеславие, Rails 3 и Heroku - PullRequest
7 голосов
/ 12 июня 2011

Я пытаюсь заставить Vanity хорошо играть с Heroku и моим приложением Rails 3. На данный момент все работает нормально локально с помощью Pow и локального сервера Redis, но когда я нажимаю на Heroku с помощью надстройки RedisToGo, кажется, что сервер не запускается, я просто получаю сообщение об ошибке: 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-фу подвел меня.

Ответы [ 3 ]

9 голосов
/ 12 июня 2011

Да, это было что-то глупое, хорошо.Вы не используете host, вы используете connection.

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

Надеюсь, это кому-нибудь поможет, потому что я чуть не избил свой компьютер до полусмерти.

4 голосов
/ 28 июня 2011

Если вы используете Postgres на Heroku, вам нужно сделать что-то немного другое. Вот мой хак (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)
3 голосов
/ 23 февраля 2012

Последнее замечание: если вы используете ActiveRecord & Postgres на Heroku и НЕ находитесь в общей базе данных, строка подключения должна быть:

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