サンプルは下記の状態でとします。
#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 件のコメント:
コメントを投稿