私は、パフォーマンス上の理由から純粋な SQL で書かれたいくつかの移行を含む Rails プロジェクトに取り組んでいます。後で実行するまで、正常に動作change_column
しています。1 つのパスで移行しようとすると、change_column
移行は次のエラー メッセージで失敗します。
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT NULL' at line 1: ALTER TABLE `articles` CHANGE `state` `web_state` DEFAULT NULL
おそらく Rails は、以前の移行で SQL 経由で移行したことを認識していません。ただし、rake db:migrate
失敗した後に再度実行すると、すべてが完全に機能します。
Railsに生のSQLによる変更を認識させるにはどうすればよいですか?