ActiveRecordでのUnix DomainSocket接続とdatabase.yml
乱雑なメモ。
PostgresqlにUnix Domain Socket経由で接続する場合
ググっても英語の情報が満載で、つたない英語力で読解すると「host: 'localhost'って書けばいけるで!」となったので試してもダメ。
(たぶん僕の英語力が低すぎて読解ミスってる)
泣きそうになりながら色々試してみたところ、以下なら接続できるっぽい。
config = { ... host: "/path/to/socket_dir", ... }
socket:
で指定するとかも書いてあったんですが、試してみたところダメ。
上記で接続できたのでよしとするけど、ActiveRecordのドキュメント読もうな。
接続情報を外に出す
YAML
を使えばいいらしい。
database.yml
として準備して
db: development: adapter: postgresql host: /path/to/socket_dir database: testdb hoge: huga
接続処理を以下のように書けばいい。
require 'yaml' config = TAML.load_file('./database.yml') ActiveRecord::Base.establish_connection(config['db']['development'])
Unix Domain Socket接続に時間がかかりすぎた。。。明日はmigrationと複数テーブルの結合やるぞい。。。