在 Ruby on Rails 中,如何在迁移中添加外键约束?
Lakshmi
问问题
8527 次
4 回答
14
这是一个基于 gem 的解决方案,包括对添加和删除外键约束的支持,在 sqlite 上不会失败,并且可以与 schema.rb 文件一起正常工作:
于 2009-11-22T08:25:21.273 回答
4
这是 matthuhiggins-foreigner gem 的更新:http: //github.com/sparkfly/foreigner
特征:
- rspec 覆盖率,针对 PostgreSQL 8.3.9 和 MySQL 5.0.90 进行测试
- 迁移支持
- schema.rb 支持
未来的版本将包括 PostgreSQL 的 CHECK 约束,这是实现多表继承所必需的。
于 2010-04-09T21:24:34.010 回答
2
AFAIK,没有任何内置支持,但有几个插件可以帮助你。您也可以手动将它们添加到您的迁移文件中,只需为此使用 execute 方法,例如(来自 Rails API 的示例):
class MakeJoinUnique < ActiveRecord::Migration
def self.up
execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)"
end
def self.down
execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`"
end
end
于 2008-11-26T11:53:23.840 回答
0
添加以下内容是否足够,例如使用Products
和User
模型?
add_index :products, :user_id
于 2011-08-16T08:05:24.610 回答