【发布时间】:2011-05-05 14:12:05
【问题描述】:
我有一个使用add_index 向现有表添加索引的迁移:
add_index :foo, [:foo_type, :bar_id, :baz_id], :unique => true
但是,我的字段足够长,超过了 InnoDB 的最大密钥长度。根据Anders Arpteg's answer 到How do I increase key length in MySQL 5.1?,我需要生成这样的SQL:
CREATE UNIQUE INDEX `index_matches_on_foo_and_bar_id_and_baz_id` ON `matches` (`foo`(100), `bar_id`(100), `baz_id`(100))
我可以用一种不错的 Rails 方式来做这件事,还是必须在我的迁移中使用原始 SQL?
【问题讨论】:
-
检查此链接:github.com/rails/rails/issues/9855#issuecomment-28874587 可能会有所帮助,对我来说效果很好
标签: ruby-on-rails