Ruby On Rails 笔记3——表的增删改查

1.Migration

Migrations是一种便利的方法,能以重现的方式随时间推移改变数据库schema. 使用Ruby Domain Specific Language (DSL),因此你不用手写SQL,进而使你的schema和changes与数据库独立。

可以把每次migration看作是数据库的一个新“版本”。A schema开始时什么都没有,每次migration都会对其进行修改,以添加或删除表、列或索引。Active Record知道如何沿着这条时间线更新schema,把它从历史中任何时间点带到最新版本

Active Record更新 db/schema.rb 文件,使其与数据库的最新结构相匹配。例如:

# db/migrate/20240502100843_create_products.rb
class CreateProducts < ActiveRecord::Migration[7.2]
  def change
    create_table :products do |t|
      t.string :name
      t.text :description

      t.timestamps
    end
  end
end

这个migration添加一个名为products的表,该表有一个名为name的string型列和一个名为description的text型列。还将默认添加名为id的主键列,因为它是所有Active Record models的默认主键。timestamps会添加created_at 和 updated_at列。

Migrations以文件形式存储在 db/migrate 目录中,每个migration class都有一个文件。

文件名的格式为YYYYMMDDHHMMSS_create_products.rb,包含标识migration的 UTC 时间戳,下划线和migration名称。Rails 使用此时间戳来决定应运行哪个migration,以及运行的顺序,因此,如果要从其他应用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值