我在Windows 8.1(64位)上的Rails 4下有一个MySql5.6数据库,我正在运行迁移来重建数据库。这些迁移适用于其他开发人员。这指向了我的系统,但我不知道是什么。我得到的错误是rename_table引发MySQL错误。
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 'INDEX `index_bays_on_hub_id` TO `index_w_bays_on_hub_id`' at line 1: ALTER TABLE `w_bays` RENAME INDEX `index_b
ays_on_hub_id` TO `index_w_bays_on_hub_id`C:/Users/Dev/RubymineProjects/ital-freight-manager/db/migrate/20141128123833_rename_bays_to_w_bays.rb:3:in `change'
迁移方法是
def change
rename_table :bays, :w_bays
end
我读到这句话说Rails已经生成了ALTER TABLE ... RENAME INDEX ..命令,MySQL不理解。数据库配置指定这是一个MySQL数据库(它是一个MySQL数据库),所以我不知道为什么Rails(或者它的Ruby)生成无效命令。任何帮助识别问题的人都会受到赞赏,因为我是Rails的新手。
***刚刚意识到这是一个rename_table,但我看到的是一个rename_column,我已经手动完成了。然后它击中了这个。
答案 0 :(得分:0)
您需要先删除引用托架的索引 重命名表 创建新索引 例如:
def change
remove_index :bays, name: "index_bays_on_hub_id"
rename_table :bays, :w_bays
... create index
end