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
が追加される
経緯
Ref
Rails6.0.0より- t.timestampsフィールドにデフォルトで
precision: 6
が指定されるようになった - t.timestamps以外の日時型フィールドは明示的に指定をしなければ
precision
は指定されない(これはDBのデフォルト精度を使うことを意味する)
Ref
Rails7.0.0より- t.timestamps以外のdatetimeフィールドも
precision: 6
でカラムを作るようになった(この変更によりschema.rbにprecision: 6
は削除された) -
precision
をDBのデフォルトにするにはprecision: nil
を明示することが必要になった
Ref
Rails 7.0.2より上記の互換性維持のため、schemaファイルにRailsバージョンがつくようになった
-
ActiveRecord::Schema[6.1]
ならprecisionなしをDBのデフォルトと読み替える -
ActiveRecord::Schema[7.0]
ならprecisionなしをprecision: 6
と読み替える
このスクラップは2023/09/05にクローズされました