Heroku Rails デプロイ 忘備録
rails routes bundle install //libxmlはXMLをパースするライブラリ sudo yum install libxml2-devel //libcurlは通信をサポートするライブラリ sudo yum install libcurl-devel bundle install //リダイレクトの確認 rails routes rails s //環境変数の設定 vi ~/.bash_profile //設定を反映 source ~/.bash_profile
エラー
Uglifier::Error: Unexpected character '`'
調べてみるとUglifier= RailsのJavaScriptの軽量化gem がES5までしか対応していない。
おいおい、、、
本家サイトで確認
config>environment.rb
//これを config.assets.js_compressor = :uglifier //このように変更 config.assets.js_compressor = Uglifier.new(harmony: true)
ビルドは通ったけど今度はこれ
ログを見る tailは現在のものを見れる
heroku logs --tail
iamge fileが ないとエラーが出たので、とりあえずpostgressをインストール
sudo yum install -y postgresql-server postgresql-devel sudo chkconfig postgresql on sudo service postgresql start //postgres userでログイン sudo -u postgres -i //ec-2userを作成する createuser -s ec2-user //CTL + D で抜ける bundle install //DB作成 rails db:create rails db:migrate //サーバー起動 rails s
エラー
NoMethodError (undefined method `email' for nil:NilClass): app/models/user.rb:54:in `is_same_person_as_super_user?'
emailが無いと言っているので、言われたところを見てみる
def is_same_person_as_super_user? User.superuser.email == email end
superuserが無いとエラーになる。
def self.superuser User.find_by(email: ENV.fetch('SUPERUSER_EMAIL')) end
superuserは環境変数からgetしているので、環境変数にセットする
ついでにDBもリセットする
herokuのブラウザからできる。
DBをマイグレーションする。
$ heroku run rake db:migrate //作成したタスクを確認。 $rake -T //タスクを実行 $ heroku run rake db:create_superuser
DBのリセットはherokuコマンドでも可能
//ログを見る heroku logs --tail //リセット heroku pg:reset DATABASE //DBに反映 heroku rake db:migrate //データ作成 heroku rake db:seed
参考にさせていただきました https://whatsupguys.net/programming-school-dive-into-code-learning-41/