Heroku utiliza la base de datos PostgreSQL y una URL en una variable
de entorno ENV['DATABASE_URL']
.
configure :development do DataMapper.setup(:default, "sqlite3://#{Dir.pwd}/development.db") end configure :production do DataMapper.setup(:default, ENV['DATABASE_URL']) end
Estas líneas especifican que se usa SQLite en desarrollo y PostgreSQL en producción.
Obsérvese que el Gemfile
debe estar coherente:
[~/sinatra/sinatra-datamapper-jump-start(master)]$ cat Gemfile source 'https://rubygems.org' gem "sinatra" gem "slim" gem "sass" gem "dm-core" gem "dm-migrations" gem "thin" gem "pg", :group => :production gem "dm-postgres-adapter", :group => :production gem "dm-sqlite-adapter", :group => :developmento mejor:
group :production do gem "pg" gem "dm-postgres-adapter" end
heroku create ...
git push heroku master
heroku open
heroku logs --source app
Ahora ejecutamos la consola de heroku:
heroku run consolelo que nos abre una sesión
irb
.
Ahora creamos la base de datos en Heroku:
[~/sinatra/sinatra-datamapper-jump-start(master)]$ heroku run console Running `console` attached to terminal... up, run.8011 irb(main):001:0> require './main' => true irb(main):002:0> DataMapper.auto_migrate! => #<DataMapper::DescendantSet:0x007fb89c878230 @descendants=#<DataMapper::SubjectSet:0x007fb89c8781b8 @entries=#<DataMapper::OrderedSet:0x007fb89c878190 @cache=#<DataMapper::SubjectSet::NameCache:0x007fb89c878168 @cache={"Song"=>0}>, @entries=[Song]>>> irb(main):003:0>Véase también la practica TicTacToe 45.28 y el capítulo Despliegue en Heroku . .
Casiano Rodríguez León