0

假设 ruby​​ on rails 中的迁移只是对任何数据库的更新是正确的。并且 rake db:migrate 脚本仅用于实现这些更改?

4

1 回答 1

2

是的。

迁移是一种以结构化和有组织的方式更改数据库的便捷方式。您可以手动编辑 SQL 片段,但随后您将负责告诉其他开发人员他们需要去运行它们。您还必须跟踪下次部署时需要对生产机器运行哪些更改。

Active Record 跟踪哪些迁移已经运行,所以你所要做的就是更新你的源并运行 rake db:migrate。Active Record 将确定应该运行哪些迁移。它还将更新您的 db/schema.rb 文件以匹配您的数据库的结构。

迁移还允许您使用 Ruby 描述这些转换。这样做的好处是(就像大多数 Active Record 的功能一样)它独立于数据库:您无需担心 CREATE TABLE 的精确语法,就像您担心 SELECT * 的变化一样(您可以下拉到用于数据库特定功能的原始 SQL)。例如,您可以在开发中使用 SQLite3,但在生产中使用 MySQL。

来源:Ruby on Rails 指南:迁移

于 2012-06-13T14:24:00.947 回答