rails db:migrateでスキーマの順番が変わる問題でやったこと
Metadata
Date: July 31st, 2021
Category: プログラミングを通して面白い課題を解決したい
rails db:migrate
を行うと、schema.rbのカラム順が変わる問題が発生したときにやったことのメモです。
DBはPostgreSQLを使い、annotateというモデルのスキーマ情報をファイルにコメントとして書き出してくれるgemを使っています。
作業メモ
マイグレーションファイルを1つ追加する(この時点で未実行のマイグレーションファイルは1つだけ)。
rails db:migrate
今回追加した以外の箇所もスキーマが更新されてしまった(カラム順が変わっている)。
一からマイグレーションしなおしてみる。
rails db:migrate:reset
上記でannotateはうまくいったけど、やっぱり今回追加した以外の箇所もスキーマが更新されてしまった。
一旦、差分が出たschema.rbの変更分は元の状態に戻して、db:reset
を行う。
rails db:reset
db:reset
はschema.rbを正としてテーブルを再作成するので、スキーマはこの時点では変化なし。
再度、db:migrate
で未実行のマイグレーションのみ実行すると、未実行のマイグレーション箇所のみスキーマが更新された!
rails db:migrate