LoginSignup
0
0

More than 3 years have passed since last update.

ローカルで行った変更点が本番環境に反映されない時の対処法

Posted at

せっかくローカルで変更して上手くいっても、本番環境で変化がなければなんの意味もありません。

今回、ローカルホストではしっかり変わっているにも関わらず、本番環境(capistranoで自動デプロイ時)に反映されない時の対処法を書いていきます。

結論「unicornをkill」しましょう。

unicornをkillする手順

1.ターミナル

[ec2-user@本番環境 <リポジトリ名>]$ ps aux | grep unicorn

こちらをしていただくと

ec2-user 17877  0.4 18.1 588472 182840 ?       Sl   01:55   0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 17881  0.0 17.3 589088 175164 ?       Sl   01:55   0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 17911  0.0  0.2 110532  2180 pts/0    S+   02:05   0:00 grep --color=auto unicorn

このように表記されると思います。

一番上の行の5桁の数字(PID)をkillします。

kill -9 上記で確認したPID

あとはもう一度デプロイ するだけ

でも、毎回デプロイ のたびにこれをするのは手間ですよね。

なので、デプロイ 時に自動でunicornをkillしてstartしてくれる記述を書きましょう。

config/deploy.rb

after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
  task :restart do
    invoke 'unicorn:stop'
    invoke 'unicorn:start'
  end

  desc 'upload master.key'
  task :upload do
    on roles(:app) do |host|
      if test "[ ! -d #{shared_path}/config ]"
        execute "mkdir -p #{shared_path}/config"
      end
      upload!('config/master.key', "#{shared_path}/config/master.key")
    end
  end
  before :starting, 'deploy:upload'
  after :finishing, 'deploy:cleanup'
end

こちらの

namespace :deploy do
  task :restart do
    invoke 'unicorn:stop'
    invoke 'unicorn:start'
  end

このように記述することで、デプロイ 時に自動でunicornを再起動してくれます。

私のような誰かの助けになれば幸いです!!!

それではまたどこかで^^

0
0
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
0
0