내가 내 마이그레이션이있다 : 나는 dB/schema.rb에 살짝 때 내가 대신 이것을보고schema.rb 지수는
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
을하지만 :
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가 동일한 색인을 작성하도록 강요합니까? 레일즈 3.1 이전에 postresql을 사용하고 있습니다.
PostgreSQL을 – sthapit
레일 3.1 사전 데이터베이스 엔진 기능의 기본 집합을 지원합니다 내가 레일에있어, 그래서 유일한 해결책은 덤프하는 것입니다 SQL의 스키마. 유일한 단점은 읽을 수있는 스키마가 손실된다는 것입니다. 그러나 모든 고급 색인을 확실히 확보 할 수 있습니다. – iafonov
"config.active_record.schema_format = : sql"을 application.rb에 넣은 후에도 sql에서 스키마를 만들 수 없습니다. 누군가 도울 수 있습니까? http://stackoverflow.com/questions/7034977/how-to-create-schema-in-sql – sthapit