重命名列是否会将预填充值设置为NULL?

时间:2016-06-24 03:57:30

标签: ruby ruby-on-rails-4 activerecord ruby-on-rails-3.2

我创建了一个迁移,将列名type重命名为checkin_type。重命名type列之前包含旧记录的某些值。但是,在将列重命名为checkin_type后进行迁移时,会为所有记录设置值NULL

我很困惑,迁移是对的还是错的。想法是,虽然重命名旧保存记录的列值不应该更改。

这是我的迁移

class RenameTypeToCheckinType < ActiveRecord::Migration
  def self.up
    Lhm.change_table :checkins do |m|
      m.ddl(sprintf("alter table %s CHANGE type checkin_type VARCHAR(100)", m.name))
    end
 end

def self.down
  Lhm.change_table :checkins do |m|
    m.ddl(sprintf("alter table %s CHANGE checkin_type type VARCHAR(100)", m.name))
  end
end

0 个答案:

没有答案