【rails】PostgreSQLを使った環境構築
PostgreSQL Accountの作成
仕事でPostgreSQLを使っていたので、Accountを作るところから。
$ sudo -u postgres psql PASSWORD= <PCのパスワード> postgres=# create role <username> with createdb login password '<password>'; # usernameとpasswordはあとで使う postgres=# \q $ rails new <appname> -d postgresql # オプションでpostgresqlを指定 $ cd <appname>
これでPostgreSQLを使ったRailsができた。
dotenv-railsの追加
PostgreSQLのdatabse.ymlを編集する前にgemを追加しておく。
gem 'dotenv-rails'
追加したら bundle install
でgemを適用させる。
$ bundle install $ touch .env.local #今回はローカル作業用にlocalファイルを作成
今回は .env.local
を作ったが、これをコピーしたければ
cp .env.local .env.<好きな名前>
で作れる。
config/database.ymlの編集
default: &default adapter: postgresql encoding: unicode pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> # この下に3行追加していく username: <%= ENV['USER'] %> password: <%= ENV['PASSWORD'] %> host: <%= ENV.fetch('HOST', 'localhost') %>
続いて先ほど作った .env.local
に必要な情報を追加していく。
USER=<username> PASSWORD=<password> HOST=localhost # 別環境で使うことがあればそれを指定
.gitignoreに追加
.env.local
を作って環境変数を指定してあげているので、GitHub上にファイルを上げないように設定してあげる。
# dotenv .env*
これで、.env
から始まるファイルはGitHub上に上がらない。
リモートリポジトリの作成
ここまで出来たらGitHubにデータを転送していく。
$ git init # GitHubと接続 $ git add -A # 一回ファイルをコミットできる状態にしておく $ git rm --cached .env.local #さっき作った.env.localは上げないように削除 $ git commit -m"first commit" # コメントはなんでも良い
GitHubでリポジトリを作ったら、SSHのURLをコピーしておく
$ git remote add origin <コピーしたURL> $ git push -u origin master
これで、localで使ったPostgreSQLのusernameとpasswordをGitHub上に公開しないで住むようになった。