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