LoginSignup
8
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2014-10-16

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


ミス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して反映。
8
8
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
8
8