本番環境で安全にmigrationを実行したい

>100 Views

November 14, 25

スライド概要

profile-image

Professional Ruby and Rails programmer in Tokyo.

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

本番環境で安全に migrationを実行したい @Omotesando.rb#114

2.

もとつねの日常 @daily_mototsune Ruby on Railsを中心に扱っているフリーランスエンジニア ドメインモデリングからAWSでの運用、スクラム運営やチームビルディ ングなどなど楽しくやらせてもらってます 普段はOmotesando.rbやGinza.rbによくいます 🍷♨✈🏎

3.

オンラインDDL (Data Definition Language)

4.

- CREATE INDEX - ALTER TABLE など

5.

テーブル全体のロックを伴わず オンラインで定義を変更できる

6.

安全にできる?

7.

No

8.

いろんな罠がある

9.

例えば

10.

Add Check Constraint class AddCheckConstraint < ActiveRecord::Migration[8.0] def change add_check_constraint :users, "price > 0", name: "price_check" end end

11.

12.

Remove Column class RemoveSomeColumnFromUsers < ActiveRecord::Migration[8.0] def change remove_column :users, :some_column end end

13.

14.

1つのテーブルにロックが かかると連鎖して サービス停止になる可能性

15.

わかっている人は防げるが 知らない人は踏んでしまう

16.

テスト環境で気が付ける?

17.

トラフィックによって 問題になる場合もある

18.

人に依存することなく 機械的に解決できることが大切

19.

strong_migrations gem

23.

推しポイント 警告にexampleが載っている (readmeにもあるよ)

24.

Happy deploy! 🎉