首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails的ActiveRecord::Migration?

Rails的ActiveRecord::Migration?
EN

Stack Overflow用户
提问于 2010-04-04 06:54:47
回答 4查看 11K关注 0票数 14

我是Ruby on Rails的新手(虽然我对Ruby比较了解),但是看着迁移工具,它听起来真的很棒。数据库模式最终可以(很容易)进入源代码控制。

现在我的问题是。当使用Postgres作为数据库时,它不设置外键。我希望在我的模式中使用外键的好处,比如引用完整性。那么,如何在迁移中应用外键呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-04 07:17:21

Rails的理念是完整性检查是属于模型的业务逻辑。这就是为什么你在数据库中看到了什么;whatever_id只是一个整数,而不是一个“真正的”fk。这不是一个错误,这是故意的,一开始有点怪异。通常,驱使人们在数据库级别使用fks的唯一原因是当数据库被多个应用程序或其遗留系统访问时。这里有很多讨论和一些很好的链接:Why do Rails migrations define foreign keys in the application but not in the database?

票数 13
EN

Stack Overflow用户

发布于 2010-04-04 07:05:10

看看这个:http://github.com/matthuhiggins/foreigner

但首先要确保你真的需要它们(例如,只要你的代码没有问题,理论上不应该破坏引用完整性,并且你知道:dependent => :destroy以及user.deleteuser.destroy之间的区别)。

票数 7
EN

Stack Overflow用户

发布于 2010-04-04 10:37:44

当你在迁移中使用特殊符号时,有许多Rails插件(搜索谷歌)可以为你创建外键(foreign_key_migrations是“高级Rails处方”一书中的一个)。请注意,Rails不能很好地使用这个概念,特别是当您尝试删除对象时(正如glebm所提到的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2572949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档