141

私の Rails (3.2) アプリでは、データベースに多数のテーブルがありますが、null でない制約をいくつか追加するのを忘れていました。既存の列に null 以外を追加する移行を作成するにはどうすればよいですか?

4

5 に答える 5

96

Rails 4 以降では、ネイツの回答( change_column_nullを使用) の方が優れています。

Rails 4 より前のバージョンでは、 change_columnを試してください。

于 2012-02-15T00:25:05.813 に答える
0

私のアプローチでは、既存の移行済みの移行で必要な列に NOT NULL 制約を追加します。その後、次のコマンドを使用してすべての移行をリセットしました。

rake db:migrate:reset

これにより、データベースが削除され、再度作成され、すべての移行が実行されます。変更は schema.rb で確認できます。

単純な移行で列がほとんどない場合は、このアプローチを使用できます。

于 2021-04-21T07:40:48.460 に答える