15 数据库基础之生成数据库迁移

在上一章中,我们讨论了如何让 Rails 应用程序与数据库连接。如今,我们开始学习如何使用数据库迁移来管理数据库架构的更改。数据库迁移是 Rails 提供的一种内置功能,可以让我们以版本管理的方式来更新数据库结构。通过使用迁移,我们不仅可以创建和修改数据库表,还可以轻松地回滚到以前的状态,确保我们的数据库管理更加灵活和可靠。

什么是数据库迁移?

数据库迁移是一个版本控制系统,用于记录数据库结构的演变。每个迁移都对应一个数据库操作,如创建表、增加列或修改数据类型。通过迁移,开发者可以轻松地共享和应用这些更改,而不必手动管理 SQL 脚本。

在 Rails 中,迁移以 Ruby 文件的形式存在,通常保存在 db/migrate 目录下。每个迁移都以时间戳开头,例如 20230215123456_create_users.rb,表明它的创建时间。

生成迁移

要生成一个新的数据库迁移,我们可以使用 Rails 提供的命令行工具。我们以创建一个 users 表为例。可以通过以下命令生成迁移文件:

1
rails generate migration CreateUsers

此命令会在 db/migrate 目录下创建一个新的迁移文件,文件名类似于 20230215123456_create_users.rb。接下来,我们打开这个文件并定义我们要执行的数据库操作。

定义迁移内容

每个迁移文件包含两个主要的方法:changeup / down。在本例中,我们将使用 change 方法来创建一个新的用户表。

打开刚生成的迁移文件,内容大致如下:

1
2
3
4
5
6
7
8
9
class CreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
t.string :name
t.string :email
t.timestamps
end
end
end

在这个例子中,我们定义了一个 users 表,其中有 nameemail 两个字符串类型的列,以及两个时间戳字段 created_atupdated_att.timestamps 方法会自动添加这两个字段。

运行迁移

定义好迁移后,我们可以通过运行以下命令来执行迁移:

1
rails db:migrate

这条命令会根据我们定义的迁移内容更新数据库结构。在成功运行后,可以通过数据库管理工具或 Rails 控制台来查看 users 表。

回滚和再次迁移

如果在执行迁移后想要撤销更改,可以使用以下命令回滚:

1
rails db:rollback

这会撤销上一次迁移操作。假如我们需要多次回滚,可以多次执行这个命令;也可以使用 rails db:rollback STEP=n,其中 n 是步数,这样可以一次性回滚多个迁移。

如果再次运行 rails db:migrate,迁移会重新应用到数据库中。

结论

通过这个小节,我们已经了解了如何生成和定义数据库迁移,以及如何执行和回滚迁移操作。使用迁移可以显著提升数据库管理的效率,使团队协作更为便捷。

在接下来的章节中,我们将深入了解如何使用 ActiveRecord 进行数据库操作,它是与数据库交互的强大工具,为我们的应用程序提供了一个简洁的接口。整个过程将使我们更好地掌握 Rails 数据库操作的核心概念与技巧。

15 数据库基础之生成数据库迁移

https://zglg.work/rails-zero/15/

作者

IT教程网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论