У меня есть это для моей миграции:
class CreateCategories < ActiveRecord::Migration
def up
create_table :categories do |t|
t.integer :parent_id
t.string :title, :null => false
end
execute('CREATE UNIQUE INDEX ix_categories_root_title ON categories (title) WHERE parent_id IS NULL')
end
def down
drop_table :categories
end
end
Но когда я заглянул в db / schema.rb, я увидел это вместо:
ActiveRecord::Schema.define(:version => 20110808161830) do
create_table "categories", :force => true do |t|
t.integer "parent_id"
t.string "title", :null => false
end
add_index "categories", ["title"], :name => "ix_categories_root_title", :unique => true
end
Что, очевидно, не одно и то же и неправильное. Есть ли способ заставить schema.rb создать такой же индекс? Я использую postresql с Rails 3.1 pre.