在我之前使用Django进行Web开发之后,我最近开始使用Ruby on Rails。我发现自己非常喜欢对迁移的强调(关于Django是事后的想法),但我对以下内容有点关注:
我认为在命名迁移文件时可能会受到纪律处分,因此可以找到与给定模型相关的所有迁移,但是,一旦你到达m
模型{{1}每次迁移都需要跟踪。
必须有一种方法来检查特定模型的当前状态 - 字段和方法 - 没有苦差事;一位经验丰富的RoR开发人员可以启发我吗?
答案 0 :(得分:3)
您拥有db/schema.rb
文件,其中表达了每个模型的所有字段(以一次大迁移的形式)。
数据(字段)和行为(方法)之间的分离是有意的,并且可以使用库来覆盖它,这些库使用头部注释中最新适用的模式的副本来注释模型
答案 1 :(得分:1)
如果您查看模型文件,您会注意到它们不包含对其属性的引用 - 例如,您的用户可能有电子邮件,但您的用户中没有该文件的跟踪.RB。那是因为它位于schema.rb.
Schema.rb
表示在运行rake db:migrate时由数据库中的rails生成的数据库。虽然如果你删除它并不是世界末日 - 运行你的迁移应该(理论上)产生你拥有的schema.rb
。但是,迁移是很脆弱的事情(例如,您可能已经添加了新的验证规则,因为最初编写了迁移)因此,您应该schema.rb
检入版本控制。
Schema.rb 可以通过运行
加载到空数据库中rake db:schema:load