Ruby on Rails 迁移

2024 年 12 月 18 日 | 2 分钟阅读

迁移是一种以一致且有组织的方式随时间更改数据库模式的方法。它们使用 Ruby DSL,因此无需手动编写 SQL。

可以手动编辑 SQL 片段,但之后您必须告知其他开发人员您所做的更改,然后运行它们。您需要跟踪下次部署时需要在生产机器上运行的更改。

每个迁移都是数据库的一个新版本。每个迁移通过添加或删除表、列或条目来修改数据库。Active record 将更新您的 db/schema.rb 文件,以匹配数据库的最新结构。


迁移的目的

在使用迁移之前,了解迁移的目的是很重要的。数据库用于所有 Web 应用程序。

通常,SQL 语句用于运行数据库查询,以创建、修改、读取或删除数据库的列。

迁移文件包含一组特定的指令,说明应如何创建数据库。当运行此文件时,Rails 将自动更改数据库。 逐渐地,迁移文件将充当数据库如何更改的版本化历史记录。这意味着您将能够从这组指令文件重新创建数据库。


创建迁移文件

创建迁移文件的语法

这将创建一个名为 db/migrate/001_table_name.rb 的文件。 迁移文件包含数据库表的基本数据结构。

建议在运行迁移生成器之前,清除模型生成器生成的现有迁移。

示例

让我们在应用程序tutorials中创建一个名为 java 的迁移。

Ruby On rails migrations 1

编辑代码

转到 tutorials 应用程序中的 db/migrate 目录。在当前文件 001_java.rb 中写入以下代码:

在迁移到新版本时使用方法 self.up,在需要回滚任何更改时使用 self.down


运行迁移

创建所有必需的迁移文件后,您需要执行它们。要针对数据库执行迁移文件,请运行以下代码:

如果 "schema_info" 表不存在,它将创建该表。它跟踪数据库的当前版本。

如果创建新的迁移,那么它将是数据库的一个新版本。

Ruby On rails migrations 2