Web*_*rit 24 migration ruby-on-rails
我是初级Rails开发人员,在工作中我们遇到了以下问题:
只需为一条记录更新列的值.我们做的是创建这样的迁移:
class DisableAccessForUser < ActiveRecord::Migration
def change
User.where(name: "User").first.update_column(:access, false)
end
end
Run Code Online (Sandbox Code Playgroud)
迁移仅适用于架构更改吗?
你还建议其他什么解决方案?
PS:我只能用代码更改它.无法访问控制台.
Pau*_*ter 18
简短版本是,因为迁移仅用于架构更改,所以您不希望使用它们来更改数据库中的实际数据.
主要问题是,如果使用其中一个rake db:schema:load或者加载数据库结构,则其他开发人员可能会忽略您的数据操作迁移rake db:reset.两者都只使用该schema.rb文件加载最新版本的结构,而不接触迁移.
正如Nikita Singh在评论中也指出的那样,我也会说改变行数据的最佳方法是实现一个简单的rake任务,可以根据需要运行,与迁移结构无关.或者,对于第一次安装,该seed.rb文件非常适合加载初始系统数据.
希望漫无边际的帮助.
更新
在一些"官方"来源中找到了一些文档:
seed.rd文件中.