herokuでrubyやrailsとpostgres(DB)を繋げる
railsでアプリを作っていて、herokuにデプロイしたら自動でpostgreSQLのDBが付与される。
railsのデフォルトのDBはsqliteなのだが、production環境ではこれは使えない。(git push heroku masterすると怒られる)
なので、gemfileを書き換えてdevelopment環境では gem pgを使ってpostgreSQLを使うようにするのだが、
自分のパソコンから、デプロイした先のrailsアプリへデータを流し込むやり方がわからなかったので備忘録。
1,自分のherokuアカウントから、接続情報を確認。
overview=>heroku postgresを選択。
setting =>Database Credentialsから確認。
ターミナル上でheroku CLIから確認もできる(
qiita.com
)
2, require "pg" でreqireし、PG::connectの引数に1で確認した情報を与えることによってinsert可能に。
require "pg" def insert(articles) db = PG::connect(:host => "1で確認したHost", :user => "1で確認したuser", :password => "1で確認したpassword", :dbname => "1で確認したDatabase") db.exec("insert into posts (title, url, created_at, updated_at) values ('#{title}','#{url}','2015-07-11 03:01:41.459369','2015-07-11 03:01:41.459369');") end
こうしたら、herokuにデプロイ済みのアプリにローカル環境からデータを流しこめます。