Parece que el entorno de Rails está atascado en producción, incluso en el entorno de desarrollo

Cuando corro bundle install en el directorio de mi aplicación Rails, Bundler instala gemas que solo están en el grupo de producción (como heroku o pg). Cuando ejecuto el servidor de rieles localmente, también está tratando de buscar un adaptador activerecord-tcp que tenga CERO resultados en Google:

/Users/atestu/.rvm/gems/ruby-1.9.3-p125@global/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require': Please install the tcp adapter: `gem install activerecord-tcp-adapter` (cannot load such file -- active_record/connection_adapters/tcp_adapter) (LoadError)

Supongo que esta joya está relacionada con el entorno de producción de heroku, pero mi variable RAILS_ENV está vacía. Y tengo exactamente el mismo problema cuando lo configuro en development o cuando corro rails s -e development.

¿Cómo puedo profundizar en este problema?

Editar: aquí está mi Gemfile:

source 'http://rubygems.org'

gem 'rails', '3.2.1'
gem 'json'
gem 'jquery-rails'
gem 'authlogic'
gem 'acts-as-taggable-on'
gem 'rpx_now'
gem 'hominid'
gem 'ruby-tmdb'
gem 'memcached'
gem 'aws-s3'

group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'uglifier'
end

group :production do
  gem 'heroku'
  gem 'pg'
end

group :development, :test do
  gem 'sqlite3'
  gem 'taps'
end

Y aqui esta mi database.yml archivo:

# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
development:
  adapter: sqlite3
  database: db/development.sqlite3
  pool: 5
  timeout: 5000

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

preguntado el 09 de marzo de 12 a las 23:03

Publique también su archivo database.yml -

Eso es raro, ¿estás seguro de que este es tu database.yml ¿Archivo? Se parece mucho a que en algún lugar de su aplicación le está pidiendo a los rieles que se conecten usando un tcp adaptador. -

@MaurícioLinhares: Heroku reemplaza el archivo base de datos.yml en producción con su propia configuración. -

@Kevin no sucede en heroku, sucede en su máquina local. -

@MaurícioLinhares, sí, estoy seguro :) (@Kevin es mi socio de codificación, yo soy el encargado de la parte delantera, él hace el backend y ¡simplemente no podemos resolver esto! Pensamos que era un problema con Heroku ya que eso es lo que usamos en producción... pero sin suerte hasta ahora) -

3 Respuestas

Tal vez deberías comprobar .bundle/config archivo?

respondido 10 mar '12, 22:03

Mi .bundle/config en su totalidad: --- BUNDLE_WITHOUT: production Lo armé pero volvió a aparecer después bundle install - Alejandro Testu

Raro... ¿Posiblemente relacionado con la gema de los grifos? Eliminarlo del Gemfile ha ayudado a otros.

No se ha desarrollado en más de 11 meses y cuando lo incluí en mi Gemfile, generó una carpeta Ruby 1.9.1 (y estoy usando 1.9.3) con un montón de gemas, podría haber algunos conflictos allí. Parece ser la única referencia a 'tcp' que puedo encontrar. Podría valer la pena usar pgbackups en su lugar, si es posible.

También es posible que desee considerar el uso de Cinturón de herramientas Heroku en lugar de incluirlo en el Gemfile.

contestado el 23 de mayo de 17 a las 13:05

Acabo de intentar eliminarlo (e incluso desinstalarlo por completo), y sigue apareciendo el mismo error... - Alejandro Testu

cambiar base de datos.yml:

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

a

 production:
  adapter: postgresql
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

podrías comprobar: https://devcenter.heroku.com/articles/sqlite3 para obtener más información

no olvides subir el código a GIT.

Respondido 15 ago 13, 09:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.