サンプルは下記の状態でとします。
#ls Gemfile Gemfile.lock config.ru hello.rb #cat Gemfile source :rubygems gem 'sinatra' #cat config.ru require './hello' run Sinatra::Application #cat hello.rb require 'rubygems' require 'sinatra' get '/' do "Hello World!" end
まずはローカルのPostgresqlで動くように修正
#cat Gemfile source :rubygems gem 'sinatra' gem 'dbi' gem 'dbd-pg' #cat hello.rb require 'rubygems' require 'sinatra' require 'dbi' get '/' do dbh = DBI.connect('dbi:Pg:dozaemon:localhost', 'dozaemon', '') version = dbh.select_one('select version()') "Postgresql version is #{version}" end
Gemfileを編集したのでGemfile.lockを作り直す
bundle install
ローカルで動かしてみる。
#rackup config.ru
きちんと動くのを確認!
次はHeroku側の接続情報を取得。
ここを参照。
#heroku config BUNDLE_WITHOUT => development:test DATABASE_URL => postgres://username:password@hostname/database LANG => en_US.UTF-8 RACK_ENV => production SHARED_DATABASE_URL => postgres://username:password@hostname/database
SHARED_DATABASE_URLを参考にRubyソースを編集
#cat hello.rb require 'rubygems' require 'sinatra' require 'dbi' get '/' do dbh = DBI.connect('dbi:Pg:database:hostname', 'username', 'password') version = dbh.select_one('select version()') "Postgresql version is #{version}" end
サーバで動かしてみる。
#git add . #git commit -m 'db test' #git push heroku master #heroku open
うごいた!だめなら heroku logs
0 件のコメント:
コメントを投稿