我有一个迁移,增加了一个索引使用add_index
现有表:在Rails迁移中创建索引时,如何限制字段长度?
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-Y的方式做到这一点,或者我必须弯腰在我的迁移使用原始的SQL?
Rails 2.x **不支持:length选项。 – 2011-05-05 14:35:00
@dmarkow:请链接。 – 2011-05-06 09:34:54
与我的其他评论相同的链接 - 我在这里的评论意味着虽然它可能不支持:限制选项(我不明白这是如何影响你的问题,因为:限制选项与创建/改变字段/列,而不是索引),它支持:length选项。 http://rubydoc.info/docs/rails/2.3.8/ActiveRecord/ConnectionAdapters/SchemaStatements#add_index-instance_method – 2011-05-06 13:09:39