【问题标题】:Confuse rails' model and migration [closed]混淆rails的模型和迁移[关闭]
【发布时间】:2013-12-10 04:31:16
【问题描述】:

早安,伙计们。

我真的需要你的帮助。谁能给我解释一下模型和迁移之间的关系。 我还是不明白。或者你可以给我一篇好文章的链接。

非常感谢 我很抱歉我的英语

【问题讨论】:

标签: ruby-on-rails model migration


【解决方案1】:

让我们先了解Active RecordsHere 是很好的解释。

Rails Active Records 在关系数据库中的表和操作数据库记录的 Ruby 程序代码之间提供接口和绑定。实际上这个活动记录文件是指模型!

Rails Migration 允许您使用 Ruby 来定义对数据库模式的更改,从而可以使用版本控制系统来保持与实际代码同步。 了解更多here.

这很简单也很有趣,对吧? :)

【讨论】:

  • 谢谢rony36。让我再问一个问题。如果我运行此命令“rails generate model Product”,它将创建 Products 表,不是吗?如果我运行这个命令“rails generate migration CreateProducts”,它会创建一个名为 Product 的模型吗?
  • 不,当您运行rails generate model Product 时,它会生成一个模型和一个迁移文件。在此迁移文件中,您需要定义 Products 表。然后,如果您运行rake db:migrate,它将生成“产品”表。除了rails generate migration CreateProducts 只创建迁移文件。
  • 谢谢rony36。这真的是个愚蠢的问题吗?如果我们只运行“rails generate migration”命令而不运行“rails generate Model”命令可以吗?
  • 它只是创建一个迁移文件来修改你的数据库。比如说,你只需要创建一个数据库表,你可以通过创建一个迁移文件来完成。并迁移此迁移文件。 :)
  • 谢谢罗尼 :)。最后我明白了。罗尼,你知道像我这样的新手有什么很棒的论坛吗?
【解决方案2】:

模型是代表您的对象的类(Person、Campaign、User 等...) Migration 是一个文件,其中包含此模型的数据库表的描述。 当您执行rake db:migrate 时,它将获取迁移文件并生成数据库表。 这个guide 有点长,但是你需要知道的都有。

【讨论】:

    【解决方案3】:

    该模型可以被视为一个普通的旧关系数据库。为了创建这样的数据库,您必须创建一个迁移文件,该文件指定要创建的表名和表列。要真正使更改生效,您必须运行 rails migrate。迁移有时会非常有益。您可以回滚所做的更改以撤消它们。在迁移中,您还应该指定如何撤消更改(除非您使用 change 方法,但这不能用于所有内容)。

    【讨论】:

    • 最好推断模型基本上是数据库表中底层记录结构的表示。可以修改该表示(不是指记录)以向模型添加各种扩展方法,而不会更改或影响底层数据存储。
    猜你喜欢
    • 2013-10-24
    • 2021-07-06
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多