
高度なマイグレーション
複雑なマイグレーション、reversible migrations、データマイグレーション、rollbacks、DB制約とバリデーションの比較、safe migrations
20 面接問題·
Mid-Level
1Rails のマイグレーションにおける change メソッドと up/down メソッドの違いは何ですか?
1
Rails のマイグレーションにおける change メソッドと up/down メソッドの違いは何ですか?
回答
change メソッドは Rails 3.1 で導入された簡略化された構文で、Rails が逆操作を自動的に推測できるようにします。add_column や create_table のようなほとんどの一般的な操作で機能します。up メソッドと down メソッドは、適用操作と rollback 操作を明示的に制御でき、データ削除や複雑な変換のように Rails が逆操作を自動的に推測できない場合に必要となります。
2Rails が逆操作を自動的に推測できない場合、マイグレーションを reversible にするにはどうすればよいですか?
2
Rails が逆操作を自動的に推測できない場合、マイグレーションを reversible にするにはどうすればよいですか?
回答
reversible ブロックを使うと、change メソッド内で up 操作と down 操作を明示的に定義できます。これは特に remove_column のような操作で役立ちます。rollback の際にカラムを再作成するために、Rails がカラムの型とオプションを知る必要があるからです。reversible ブロックは、change のモダンな構文を保ちながら up/down の柔軟性を提供します。
31回の操作で複数のマイグレーションを rollback できるコマンドはどれですか?
3
1回の操作で複数のマイグレーションを rollback できるコマンドはどれですか?
回答
rails db:rollback STEP=n コマンドは、最後に実行された n 件のマイグレーションを rollback できます。たとえば STEP=3 は、実行された順序とは逆に直近の3件のマイグレーションを rollback します。STEP オプションを指定しない場合は、最後のマイグレーションだけが rollback されます。このコマンドは、開発中にデータベースを以前の状態へ素早く戻すのに便利です。
4
データマイグレーションで ActiveRecord モデルへの参照を使うのを避けるべきなのはなぜですか?
5
大きなテーブルに対して本番環境でデータ移行を行う際のベストプラクティスは何ですか?
+17 面接問題
その他のRuby on Rails面接トピック
Rubyの基礎
Junior
25問Rubyのオブジェクト指向プログラミング
Junior
20問Rails の基礎
Junior
18問Routing & Controllers
Junior
22問ActiveRecord の基礎
Junior
25問Views と ERB テンプレート
Junior
20問ActiveRecord の関連付け
Mid-Level
24問高度なActiveRecordクエリ
Mid-Level
28問Rails フォーム
Mid-Level
20問認証と認可
Mid-Level
22問モダンな Asset Pipeline とフロントエンド
Mid-Level
18問Rails APIモード
Mid-Level
20問RSpecによるテスト
Mid-Level
24問ActiveJob & Background Jobs
Mid-Level
20問ActionCable & WebSockets
Mid-Level
18問ActionMailer
Mid-Level
18問ActiveStorage
Mid-Level
20問キャッシュ戦略
Mid-Level
20問Rails Engines とモジュラーアプリ
Senior
18問パフォーマンス最適化
Senior
26問Rails のデザインパターン
Senior
22問Rubyのメタプログラミング
Senior
20問Rails のセキュリティ
Senior
22問Rails での GraphQL
Senior
20問デプロイと本番環境
Senior
20問Monitoring & Logging
Senior
20問Rails アップグレード戦略
Senior
18問