tutorial premium postgres delete create addon ruby-on-rails sqlite heroku deployment sqlite3

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



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"



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