首页 > 解决方案 > ruby 中的模型和模式是否相同?

问题描述

在我们执行 db:migrate 之后,我很困惑,架构是什么意思?如果模型已连接,它会自动更改模型,还是我们需要手动更改模型以反映模式?

标签: rubyruby-on-rails-4

解决方案


如果您在谈论db/schema.rb文件,那么它与迁移不同。迁移旨在运行数据库命令以更新实际的底层数据库架构。当您运行rake db:migrate它时,它会尝试在数据库上运行任何挂起的迁移。如果成功,它还将在后台运行rake db:schema:dump,这将更新db/schema.rb反映实际模式的最新版本的文件。如果由于某种原因迁移由于某些错误而失败,它将回滚并将模式保留在之前的状态以运行迁移。

Rails 中的模型不涉及模式本身,但是有生成器可以帮助您创建迁移文件。为了更好地理解这一切是如何工作的,你真的应该阅读这里的文档


推荐阅读