Closed3
Rails7.0アップグレードによるschema.rbの変更点
Rails6.1から7.0にアップグレード後、 db:migrate を実行したところ schema.rb に変更があったので、変更された経緯などをメモしておく。
schema.rbの変更点
- スキーマバージョン
ActiveRecord::Schema[7.0]が追加される - 7.0以前の
schema.rbに設定されていたprecision: 6が削除される - 7.0以前に
precisionが設定されていなかったtimestampフィールドにprecision: nilが追加される
経緯
Rails6.0.0より Ref
- t.timestampsフィールドにデフォルトで
precision: 6が指定されるようになった - t.timestamps以外の日時型フィールドは明示的に指定をしなければ
precisionは指定されない(これはDBのデフォルト精度を使うことを意味する)
Rails7.0.0より Ref
- t.timestamps以外のdatetimeフィールドも
precision: 6でカラムを作るようになった(この変更によりschema.rbにprecision: 6は削除された) -
precisionをDBのデフォルトにするにはprecision: nilを明示することが必要になった
Rails 7.0.2より Ref
上記の互換性維持のため、schemaファイルにRailsバージョンがつくようになった
-
ActiveRecord::Schema[6.1]ならprecisionなしをDBのデフォルトと読み替える -
ActiveRecord::Schema[7.0]ならprecisionなしをprecision: 6と読み替える
このスクラップは2023/09/05にクローズされました