0

私は、パフォーマンス上の理由から純粋な 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による変更を認識させるにはどうすればよいですか?

4

1 に答える 1

0

あなたはreset_column_informationを探していると思います

http://apidock.com/rails/v3.2.3/ActiveRecord/ModelSchema/ClassMethods/reset_column_information

しかし、エラーメッセージに基づいて、これが正しい修正だとは思わない

于 2012-06-27T04:48:59.897 に答える