Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

deploy:rollbackした後のこといろいろメモ

More than 5 years have passed since last update.

メモ。
結構もやもやしたから。


ミスcommitをpushしたときのワークツリーの動き

gitでpushする⇒デプロイする⇒ミスった。

デプロイの履歴
deploy A(正しい)
deploy B(間違えた)←シンボリックリンク
ワークツリー
commit A1(deploy Aのcommit)
commit A2(deploy Aのcommit)
commit B1(deploy Bのcommit)

 
戻す⇒デプロイは変化するが、ワークツリーは変化しない。

rollback
bundle exec cap [環境] deploy:rollback
デプロイの履歴
deploy A(正しい)←シンボリックリンク
deploy B(間違えた)
ワークツリー
commit A1(deploy Aのcommit)
commit A2(deploy Aのcommit)
commit B1(deploy Bのcommit)

 
直した⇒ワークツリーにcommitが追加。

ワークツリー
commit A1(deploy Aのcommit)
commit A2(deploy Aのcommit)
commit B1(deploy Bのcommit)
commit C1(deploy Cのcommit)

 
pushもした(コマンド省略)

updateと再起動
bundle exec cap [環境] deploy:update
bundle exec cap [環境] deploy:graceful_restart

※個人的な都合でこうしてる。再起動を気にしなければdeployのみで可。

デプロイの履歴
deploy A(正しい)
deploy B(間違えた)
deploy C(修正した)←シンボリックリンク
ワークツリー
commit A1(deploy Aのcommit)
commit A2(deploy Aのcommit)
commit B1(deploy Bのcommit)
commit C1(deploy Cのcommit)

gitのワークツリーがコピーされるため、修正後は気にせず最新のワークツリーをデプロイしてしまえばよい。


rollbackしたときテーブル修正があるか

もう一つ。

deploy:migrateとかやってた場合、deploy:rollbackしてもDBは戻らない。
そのときのやり方メモ。(こっちは実際にやってないのでコマンドなし)

テーブルに修正がない場合
・気にせずrollbackしてコード修正。
・気にせずdeployして反映。
テーブルに修正がある場合
・rollbackする。
・作ったテーブルをdropするマイグレーションファイルを作成。
・再度deploy:migrateをして、テーブルをdropする。
・コード修正。
・普通にdeployして反映。
usizou
大体投稿は自分のめも。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away