次の 2 つのオプションから移行を行うための正しい手順を知りたいです。移行を変更するときは、のみを使用する必要がありますrails g migration add_column_to_tablename
か?
または、移行コマンドなしで移行ファイルを直接変更できますか?
次の 2 つのオプションから移行を行うための正しい手順を知りたいです。移行を変更するときは、のみを使用する必要がありますrails g migration add_column_to_tablename
か?
または、移行コマンドなしで移行ファイルを直接変更できますか?
私が考えるベストプラクティスは次のとおりです。
移行を実行していない場合は、編集してから移行できます。
既に移行しているが、それが最新の移行である場合はrake db:rollback STEP=1
、すばやくロールバックし、変更してから、rake db:migrate
もう一度行うことができます。
アプリの履歴の中で移行が十分に行われている場合は、新しい移行を追加して、行ったことの履歴を残すことをお勧めします。
最後の移行が本番環境にデプロイされていない場合は、移行ファイルを直接ロールバックして編集します。展開されている場合は、新しい移行ファイルを追加して修正します。
基本的に開発モードでは、既存のファイルを編集します。常に新しいファイルを作成することを選択する人もいますが、これにより、後で選別するのが困難な大量の小さな移行が作成される可能性があります。私にとってはこれが最善の解決策です