移行の編集に関して同様の質問をいくつか見つけましたが、これを理解できませんでした。 Railsマイグレーションを実行してから、マイグレーションファイルを開き、フィールドにデフォルト値のオプションを追加しました。次に、rake db:migrateを実行しました。デフォルト値が意図したとおりに入力されます。その後、いくつかのマイグレーションを行います。デフォルト値のオプションを削除したいのですが、どうすればよいですか?
これが最後の移行だった場合、db:rollbackを使用して再作成しますが、数回前の移行を行ったため、これを修正する方法がわかりません。
ヘルプに感謝します。
新しい移行を作成し、change_column_default
。
http://apidock.com/Rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column_default
列の新しいデフォルト値を設定します。
change_column_default(:suppliers, :qualification, 'new') change_column_default(:accounts, :authorized, 1)
デフォルトをnilに設定すると、デフォルトが実質的に削除されます。
change_column_default(:users, :email, nil)
:from
と:to
を含むハッシュを渡すと、この変更がreversibleになります。
change_column_default(:posts, :state, from: nil, to: "draft")
したがって、可能な場合はこの形式を使用することをお勧めします。