Rails Heroku デプロイ手順 忘備録
まずDBポスグレのインストールから
PostgreSQL起動
$sudo service postgresql start
ユーザー作成
ポスグレにログインする。psqlはパスワード
sudo -u postgres psql
ポスグレでuserを作成しておく。
rails_user を作成
CREATE USER rails_user SUPERUSER PASSWORD 'password';
前に#がついていれば、ポスグレにログインしている。抜けるときは\q バックスラq
postgres=# CREATE postgres-# USER rails_user SUPERUSER postgres-# PASSWORD 'password'; CREATE ROLE
こんな感じで作成される 参考資料 https://www.postgresql.jp/document/9.1/html/sql-createuser.html
終了
\q
環境変数にユーザー名とパスワードを保存
$echo "export DBUSER=rails_user" >> ~/.profile
~/.profileに書き出しています。
$echo "export DBPASS=password" >> ~/.profile
~/.profileに書き出しています。
$source ~/.profile
設定を反映、ウインドウズのF5キーと思えば良い。
環境変数の確認
一応あっているかチェック
echo $DBUSER
echo $DBPASS
ここでOSの上にもrails_userを作っておかないといけない。 それがrailsを走らせて、rails db:migrateするときにエラーになるため
FATAL: Ident authentication failed for user "rails_user"
$ sudo useradd rails_user $ sudo passwd rails_user
rails_userへ変わる $ su rails_user
Gemfileのポスグレへの変更
sqliteは使わない。cloud9で動かなければ、herokuでも動かないため。 チェックができない。
gem 'pg'
gemをインストールする
$ bundle install
/config/database.ymlの変更
encoding: unicodeに注意
[myapp]はrailsのプロジェクト名に変更すること YAMLファイルは半角スペースきちんと開けないとエラーになります。
default: &default adapter: postgresql encoding: unicode pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: <%= ENV['DBUSER'] %> password: <%= ENV['DBPASS'] %> host: localhost development: <<: *default database: [myapp]_development production: <<: *default database: [myapp]_production username: [myapp] password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
この書き換えが終わったらrails db:createを実行します。