支持Rails中的外键约束

Lak*_*hmi 9 mysql ruby-on-rails foreign-keys

在Ruby on Rails中,如何在迁移中添加外键约束?

Jas*_*rth 14

这是一个基于gem的解决方案,包括对添加和删除外键约束的支持,使用sqlite不会失败,并且可以与schema.rb文件一起正常工作:

http://github.com/matthuhiggins/foreigner


Jer*_*ans 2

AFAIK,没有任何内置支持,但有几个插件可以帮助您。您还可以手动将它们添加到迁移文件中,只需使用执行方法即可,例如(来自 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
Run Code Online (Sandbox Code Playgroud)

  • 老帖子,但万一有人看到这个:唯一索引不等于外键约束,所以我相信这段代码不能回答OP的问题。 (6认同)