0
我重命名一個列(「OLD_NAME」改爲「NEW_NAME」),並從整數轉換其他列(「列2」)在Rails遷移到布爾:導軌 - reset_column_information不起作用
def up
rename_column :my_models, :old_name, :new_name unless column_exists?(:my_models, :new_name)
...........
if column_exists?(:my_models, :column2) && !column_exists?(:my_models, :column2_num) && MyModel.columns_hash['column2'].type==:integer
rename_column :my_models, :column2, :column2_num
add_column :my_models, :column2, :boolean, :null => false, :default => true
MyModel.reset_column_information
MyModel.all.each do |item|
item.column2 = (item.column2_num!=0)
item.save!
end
remove_column :my_models, :column2_num
end
...........
end
耙分貝:將結果遷移到:
undefined method `old_name' for #<MyModel:0x4ff4238>
「save!」中出現錯誤方法。
我也試過:
MyModel.connection.schema_cache.clear!
MyModel.reset_column_information
id不工作過。
值得一提的是,我已經應用了此遷移的先前版本,並且在回滾(「down」方法爲空)之後嘗試再次應用此遷移。因此,數據庫模式當前不包含「old_name」,因爲它沒有在物理上恢復。