如何在2.3.x
环境中为我的Rails应用程序在我的数据库迁移脚本中定义外键,索引约束?
答案 0 :(得分:1)
ActiveRecord不支持以数据库无关的方式添加外键,因此您需要使用特定于DB的代码执行此操作。这是MySQL的一个例子:
class AddForeignKeyToUsers < ActiveRecord::Migration
def self.up
execute 'alter table users add constraint user_role foreign key user_role_idx (role_id) references roles (id) on delete set null on update cascade'
end
def self.down
execute 'alter table users drop foreign key user_role'
end
end
对于索引,您可以使用add_index
- 如下所示:
add_index(:users, :name)
编辑:更新了答案,阐明索引和外键的处理方式不同。