RubyアプリケーションからPostgreSQLデータベースにアクセスする方法
Ubuntu に PostgreSQL の pg ジェムをインストールする方法
前提条件
- Ubuntu 18.04 または 20.04
- Ruby 2.5 以降
- PostgreSQL 10 以降
手順
PostgreSQL サーバーのインストール
sudo apt install postgresql-server-dev-all
pg ジェムのインストール
gem install pg
PostgreSQL クライアントのインストール
sudo apt install postgresql-client
PostgreSQL データベースの作成
psql -c "CREATE DATABASE my_database;"
PostgreSQL ユーザーの作成
psql -c "CREATE USER my_user WITH PASSWORD 'my_password';"
PostgreSQL ユーザーに権限の付与
psql -c "GRANT ALL PRIVILEGES ON DATABASE my_database TO my_user;"
テスト
psql -U my_user -W my_database
上記のコマンドを実行すると、PostgreSQL データベースに接続できるはずです。
トラブルシューティング
エラー: pg_config が見つかりません
export PATH=$PATH:/usr/lib/postgresql/10/bin
上記のコマンドを実行して、pg_config
コマンドが使えるようにします。
エラー: libpq.so が見つかりません
sudo apt install libpq-dev
上記のコマンドを実行して、libpq.so
ライブラリをインストールします。
補足
- このチュートリアルでは、PostgreSQL 10 を使用していますが、他のバージョンでも同様の手順でインストールできます。
- Ruby のバージョンによっては、pg ジェムのバージョンを指定する必要がある場合があります。
# Gemfile
gem 'pg'
# ファイル: db/connection.rb
require 'pg'
# PostgreSQL データベースへの接続
connection = PG.connect(
host: 'localhost',
port: 5432,
dbname: 'my_database',
user: 'my_user',
password: 'my_password'
)
# クエリの実行
results = connection.exec('SELECT * FROM users')
# 結果の処理
results.each do |row|
puts row['name']
end
# 接続の切断
connection.close
PostgreSQL の pg ジェムをインストールする他の方法
ここでは、その他の方法を紹介します。
ソースコードからのインストール
git clone https://github.com/postgres/pg.git
cd pg
gem build pg.gemspec
sudo gem install pg.gem
この方法は、最新バージョンの pg ジェムをインストールしたい場合に便利です。
RVM を使用してインストール
RVM を使用している場合は、以下のコマンドを実行して pg ジェムをインストールできます。
rvm install pg
Bundler を使用している場合は、Gemfile に gem 'pg'
を追加し、bundle install
コマンドを実行して pg ジェムをインストールできます。
Docker を使用している場合は、PostgreSQL と pg ジェムを含むイメージを pull して実行できます。
docker pull postgres
docker run -it postgres psql -U postgres
- 最も簡単な方法は、上記の「手順」で説明されている方法です。
- 最新バージョンの pg ジェムをインストールしたい場合は、ソースコードからのインストール方法を選択してください。
- RVM または Bundler を使用している場合は、それぞれのツールを使用してインストールするのが便利です。
- Docker を使用している場合は、Docker イメージを使用してインストールするのが便利です。
ruby postgresql pg