gpt4 book ai didi

mysql - 是否需要在 Ruby on Rails 中迁移数据库?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:12 26 4
gpt4 key购买 nike

我想知道是否需要在 Ruby on Rails 中运行迁移才能使模型正常工作。

我真的很喜欢使用 MySQL Workbench 设计数据库,它提供了一个导出选项,可以在之后轻松创建数据库,所以我想知道从 Rails“迁移”数据库是否真的对模型有所帮助,比如让他们知道表存在或类似的东西。

我问这个是因为当我运行 rake db:migrate 时,在 db 文件夹中创建了一个新文件:schema.rb数据库的信息。

作为附加信息,我正在使用这些版本:

  • Ruby - ruby​​ 2.1.5p273(2014-11-13 修订版 48405)[i386-mingw32]
  • Ruby on Rails - Rails 4.2.4

谢谢。

最佳答案

Rails 不会强制您使用迁移。如果您没有定义迁移,而是以其他方式定义您的数据库,那么一切仍然会正常工作。

如果您定义了迁移,那么 Rails 将跟踪它们是否已经运行(新的数据库表,schema_migrations 实际上是在您为第一次),如果你没有运行它们,请提示。如果您不打算使用迁移,请不要在 db/migrations 中包含任何内容。

您仍然可以从现有数据库生成 schema.rb,只需运行 bundle exec rake db:schema:dump 即可。但是 schema.rb 文件不被正在运行的 Rails 应用程序使用,如果您也没有 schema.rb,Rails 也可以正常工作。 AR 模型通过在应用程序启动时从数据库中实时获取有关数据库表的信息,而不是从 schema.rb 中获取。但是 schema.rb 很有用,可以在新的数据库中重新创建您的模式(即使您不使用迁移也可以这样做,但是转储 schema.rb,您仍然可以使用它来重新创建相同的模式).

迁移非常有用,大多数 Rails 开发人员都喜欢它们。它们可以有效地让您在 git 控制的源代码中跟踪对数据库模式的更改,并轻松地回滚或向前移动到其他数据库模式点。您还可以使用迁移来实际修改数据,而不仅仅是模式,并且仍然可以准确记录您在迁移中所做的修改/迁移数据的操作。如果多个开发人员协作编写代码,迁移尤其(但不仅)有用,因为您可以更轻松地合并架构更改,因为它们在源代码中被跟踪为迁移。

迁移生成的架构更改还会为您处理一些 Rails 约定,例如默认创建一个名为 id 的主键,如果您要求创建标准 Rails updated_at 或 created_at 列。

但是,如果您不想使用迁移,也没有必要,Rails 会非常乐意。

关于mysql - 是否需要在 Ruby on Rails 中迁移数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com