【发布时间】:2016-07-03 18:51:12
【问题描述】:
我是 Ruby 新手,并加入了一个现有的 Ruby on Rails 项目,试图了解数据库以重新架构它。
如果我生成一个 MySql 图,我发现 Rails 不使用外键,因此无法分析该图:
但是 Ruby 在内部显然可以理解表关系。是否有任何脚本可以通过所有迁移 .rb 脚本并自动向它们添加外键?
【问题讨论】:
-
所有信息都编码在您的rails应用程序的模型中,您可以在这里搜索belongs_to和has_many。
-
不太清楚“rails 不使用外键”是什么意思,而且屏幕截图中的文字太小而无法阅读。
-
应该可以不费力地编写一个脚本来执行此操作,但是您将无法为多态关联创建外键(您有两列:一列带有 id,和一个模型名称),因为这不是您可以在 MySQL(或任何其他数据库引擎,AFAIK)中执行的操作。
-
@max - Rails 不在数据库中创建外键。由于 Rails 数据库中没有参照完整性,因此屏幕截图显示表之间没有行。
-
@Carpetsmoker 你知道任何现有的代码让我开始吗?我在迁移脚本中看不到任何关系,我猜它们隐藏在主要应用模型中的某个地方。
标签: mysql ruby-on-rails activerecord