【发布时间】:2023-03-14 04:55:01
【问题描述】:
我正在尝试完成这样的迁移:
class AddColumn1AndColumn2ToModel < ActiveRecord::Migration[5.2]
def change
change_table :models do |t|
t.string :column1, default: "FFFFFFFF"
t.integer :column2
end
Model.where(name: 'Name1').each{|model| model.update_columns(column1: '00000000', column2: 1)}
Model.where(name: 'Name2').each{|model| model.update_columns(column1: '00000000', column2: 1)}
Model.where(name: 'Name3').each{|model| model.update_columns(column1: 'FFFFFFFF', column2: model.mod_index.to_i(16))}
end
end
但我犯了这样一个错误:
== 20210503012429 AddColumn1AndColumn2ToModel: migrating ========
-- change_table(:models)
-> 0.0038s
rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:
can't write unknown attribute `column1`
我尝试将change_table改成add_column,但是还是一样的错误。
add_column :models, :column1, :string, default: 'FFFFFFFF'
add_column :models, :column2, :integer
如何在迁移中向表中添加列并立即更改它们?
【问题讨论】:
-
该问题有
标签,但我在上面看不到任何 SQL。
标签: ruby-on-rails sqlite