La implementación de la aplicación RoR en Heroku con SQLite 3 falla

Resuelto Jaco Pretorius asked hace 13 años • 7 respuestas

Estoy intentando implementar mi primera aplicación en Heroku. Estoy usando SQLite como base de datos. Hasta donde yo sé, Heroku no usa SQLite, cambia a Postgres en el backend.

Cuando estoy implementando me sale 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 ​​existe ese archivo para cargar - sqlite3 (LoadError)

Mi Gemfile(que es lo que supongo que está causando este problema) tiene el siguiente aspecto:

source 'http://rubygems.org'

gem 'rails', '3.0.0'        
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

¿Qué estoy haciendo mal?

Jaco Pretorius avatar Oct 10 '10 01:10 Jaco Pretorius
Aceptado

Heroku no admite bases de datos SQLite. Necesitas usar PostgreSQL en producción, como también lo 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 utilizar en desarrollo/prueba un entorno lo más cercano posible a producción. Por lo tanto, le sugiero que cambie todos sus entornos a PostgreSQL.

# replace gem "sqlite3" with
gem "pg"
Simone Carletti avatar Oct 09 '2010 19:10 Simone Carletti

Simone Carletti tiene razón y Joost también. Sólo necesita agrupar la gema sqlite3 o eliminarla por completo de su Gemfile. Heroku solo necesita saber que no desea utilizar 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
...

Sin embargo, si eliminas la referencia por completo, probablemente arruinarás tu base de datos local.

hoitomt avatar Oct 20 '2010 22:10 hoitomt

Después de golpearme la cabeza con este problema, me di cuenta de que estaba empujando la rama maestra de mi repositorio a heroku, mientras hacía todos mis cambios de postgres en mi rama de implementación-postgres de mi repositorio.

Fusioné mi rama de implementación de postgres con mi maestro local [ git checkout master; git merge deploy-postgres] y luego pude ejecutar git push heroku mastersegún la documentación de heroku.

duhaime avatar Mar 13 '2016 04:03 duhaime