【发布时间】:2016-03-14 10:22:15
【问题描述】:
require 'lhm'
class RenameField1ToField2ForTable < ActiveRecord::Migration
def up
Lhm.change_table :table do |m|
m.ddl("ALTER TABLE %s CHANGE COLUMN field1 field2 FLOAT DEFAULT NULL AFTER field3" m.name)
end
end
def down
Lhm.change_table :table do |m|
m.ddl("ALTER TABLE %s CHANGE COLUMN field2 field1 FLOAT DEFAULT NULL AFTER field3" m.name)
end
end
end
发生了什么:
- Rails-4.0:rake db:migrate
- 字段重命名成功。
- 所有现有字段值都被删除,为什么?有什么想法吗?
编辑:
- 旧数据类型为
float(11) - MYSQL 5.6
【问题讨论】:
-
之前的数据类型是什么?
-
旧数据类型为 float(11)
-
我无法重现,看起来不像来自 MySQL。我不知道红宝石,所以我就停在那里。 SQLfiddle 如果有人想玩它sqlfiddle.com/#!2/096a5/1
-
MySQL 5.6 版。 Fiddle 看起来不错,就像我们的迁移一样工作。所以它没有mysql问题好吧:/
标签: mysql sql ruby-on-rails migration alter-table