ruby on rails - premium - La implementación de la aplicación RoR en Heroku con SQLite 3 falla
heroku postgresql addon (6)
Estoy intentando implementar mi primera aplicación para Heroku. Estoy usando SQLite como la base de datos. Por lo que sé, Heroku no usa SQLite: cambia a Postgres en el back-end.
Cuando estoy implementando obtengo el siguiente error:
/usr/ruby1.8.7/lib/ruby/gems/1.8/gems/bundler-1.0.0/lib/bundler/runtime.rb:64:in `require '': no se carga ese archivo - sqlite3 (LoadError)
My Gemfile
(que es lo que supongo que está causando este problema) se ve de la siguiente manera:
source ''http://rubygems.org''
gem ''rails'', ''3.0.0''
gem ''sqlite3-ruby'', ''1.2.5'', :require => ''sqlite3''
¿Qué estoy haciendo mal?
Después de golpear mi cabeza contra este problema, me di cuenta de que estaba empujando la rama principal de mi repositorio a Heroku, mientras hacía todos mis cambios de postgres en mi rama deploy-postgres de mi repositorio.
Combiné mi rama deploy-postgres con mi maestro local [ git checkout master; git merge deploy-postgres
git checkout master; git merge deploy-postgres
] y luego podría ejecutar git push heroku master
según la documentación de heroku.
Estoy usando sqlite3 y despliego a Heroku sin problema. Aquí está mi database.yml
# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
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
Estuve atascado en esto durante horas, mirando cada respuesta aquí, pero no pude obtener los detalles suficientes para hacerlo coincidir. Este paginado me guió a través de todo. http://railsapps.github.io/rails-heroku-tutorial.html
Buena suerte.
Heroku no es compatible con las bases de datos SQLite. Necesita utilizar PostgreSQL en producción, como también expliqué en esta publicación .
group :production do
gem "pg"
end
group :development, :test do
gem "sqlite3", "~> 1.3.0"
end
En realidad, se recomienda usar en desarrollo / prueba un entorno lo más cercano posible a la producción. Por lo tanto, sugiero que cambie todos sus entornos a PostgreSQL.
# replace gem "sqlite3" with
gem "pg"
Puedes usar el complemento clearDB
y gem ''mysql2''
lugar de gem ''sqlite3''
Simone Carletti es correcta y también Joost. Solo necesita agrupar la gema sqlite3 o eliminarla por completo de su Gemfile. Heroku solo necesita saber que no quieres usar sqlite3 para producción
Así que esto:
...
group :development, :test do
gem "sqlite3-ruby", "~> 1.3.0", :require => "sqlite3"
end
...
O esto:
...
#No reference to sqlite3-ruby
...
Si elimina la referencia por completo, probablemente desordene su db local sin embargo