HerokuのPostgresの情報を見つける
$ heroku pg:info --app appname
=== HEROKU_POSTGRESQL_HOGE_URL (DATABASE_URL)
Plan: Hobby-dev
Status: Available
Connections: 1/20
PG Version: 9.3.6
Created: 2014-01-01 01:00 UTC
Data Size: 0.1 MB
Tables: 1
Rows: 1/10000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
$ heroku pg:credentials HEROKU_POSTGRESQL_HOGE --app appname
Connection info string:
"dbname=db host=host port=port user=user password=password sslmode=require"
Connection URL:
postgres://hogehoge~~~~
この情報を使っていきます。
pryで試してみます
Frame number: 0/6
[1] pry(main)> require 'pg'
true
[2] pry(main)> require 'active_record'
false
[3] pry(main)> ActiveRecord::Base.establish_connection(
[3] pry(main)* adapter: 'postgresql',
[3] pry(main)* host: 'host',
[3] pry(main)* database: 'db',
[3] pry(main)* port: port,
[3] pry(main)* username: 'user',
[3] pry(main)* password: 'password',
[3] pry(main)* sslmode: 'require'
[3] pry(main)* )
#<ActiveRecord::ConnectionAdapters::ConnectionPool:0x007f287aaba640
・
・
・
[4] pry(main)> ActiveRecord::Base.connection.execute("SELECT version()").first
(226.5ms) SELECT version()
{
"version" => "PostgreSQL 9.3.6 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit"
}
# 生SQLを使う版
[5] pry(main)> ActiveRecord::Base.connection.execute("SELECT * from hoges;").first
(525.7ms) SELECT * from product_comments;
{
"id" => "1",
.
.
.
}
# ActiveRecordを使う版
[6] pry(main)> Hoge.first
{
"id" => "1",
.
.
.
}
コードでは
def get_data_from_heroku_pg
require 'pg'
require 'active_record' # 必要あれば
# Change the following to reflect your database settings
ActiveRecord::Base.establish_connection(
adapter: 'postgresql',
host: 'host',
database: 'db',
port: port,
username: 'user',
password: 'password',
sslmode: 'require'
)
・
・
・