0

我正在开发一个 Rails 项目,出于性能原因,该项目有一些用纯 SQL 编写的迁移。在我们稍后尝试运行之前,它们工作正常change_column。如果我们尝试一次性迁移,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 回答