3
2

More than 3 years have passed since last update.

初心者が書く!macOS catalina に postgreSQL をインストールしてrails6.0.3.2で使えるようにするまで

Last updated at Posted at 2020-07-08

プログラミングとmacの初心者です。
わからないなりに、色々調べて非常に時間を要したので
自分の覚書として念の為に書いておこうと思った次第ですが、
もし間違った記載など有りましたら玄人の方にご指摘いただけると本当に助かりますm(-_-)m
玄人以外の方も、出来ないなどご相談があれば、可能な限り対応します。※可能な限りですよ^^;
宜しくおねがいします。


まずはhomebrewでpostgresqlをインストールして初期設定

ターミナルで以下を実行。場所はどこでも良いみたいです。
私は前に作ったprojectsフォルダで実行しました。
この後の作業は特に記載がなければ全てターミナルで行っています。

% brew install postgresql

そして以下が初期設定らしいです。

% initdb /usr/local/var/postgres -E utf8

起動して設定確認

まずは起動。

% brew services start postgresql

以下でEncodingがUTF8になってればOKだそうです。ひょっとしたら初期設定しなくてもなってるのかも??

% psql -l

そして終了。

% brew services stop postgresql

ここはpostgreを使いやすくする設定(だそうです。)

ホームフォルダ直下にある .zshrcをvscodeで編集しました。
具体的には以下を追記。

export PATH="/usr/local/opt/postgres:$PATH"
export PGDATA="/usr/local/var/postgres"

そしてターミナルから以下を実行すればpostgreが起動します。

% source ~/.zshrc #変更した設定を適応。
% postgres

LOG: 〜
LOG: 〜
LOG: 〜
みたいな画面ならOKだそうです。
control+cで止まります。

ここからはrailsの設定です。

rails 6.0.3.2 new コマンドで好きなアプリを適当に作って下さい。ただしもちろん
-d postgresql を忘れずに^^

.gitignoreにdatabase.ymlなどこのタイミングで追加して
その後にローカルとリモートのリポジトリを作ろう!

configフォルダ内のdatabase.ymlの設定とデータベース作成権限を持ったuserの作り方
※<任意のusername>は好きな名前です。私は今回、rootにしました。

config/database.yml
default: &default
  adapter: postgresql
  encoding: utf8 #utf8に変更
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: <任意のusername> #追加
  password: #追加
  host: localhost #追加
# ターミナル
% brew services start postgresql #まずは起動
% createuser <任意のusername> -d # 消すとときは dropuser <任意のusername>

ここまで終わったら % rails db:create (もちろん任意のフォルダで)でできると思います。

おすすめGUI

私にはPosticoというソフトが使いやすかったです。
無料で使っていますが、そんなに高くないので
購入してもいいかもしれません^^
完全無料のPSequelは私にはうまく使えませんでした^^;

その後にあったエラー対処法

postgres -D /usr/local/var/postgres
で、バージョンを確認
brew postgresql-upgrade-database
でアップデート

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2