使用 LHM (Large Hadron Migrator) 有语法文档来添加索引:
require 'lhm'
class SomeMigration < ActiveRecord::Migration
def self.up
Lhm.change_table :foos do |m|
m.add_unique_index [:bar_id, :baz] # add_index if you don't want uniqueness
end
end
def self.down
Lhm.change_table :foos do |m|
m.remove_index [:bar_id, :baz]
end
end
end
如何在LHM中指定索引的具体名称?用于添加和删除
我担心我会达到索引名称长度限制,因为我使用了很多列
m.add_unique_index([:long_column, :super_long_column], 'shortened_index_name')
https://github.com/soundcloud/lhm/pull/84
自从建议批准的答案以来,情况似乎已经发生了变化。现在您不应该指定
name:
或 index_name:
,只需将其作为第二个参数传递即可:
m.add_unique_index [:bar_id, :baz], "shortened_index_name"