0
我最初由迁移如下数据太长柱 - 轨道4迁移取消
class Createfriends < ActiveRecord::Migration
def change
create_table :friends do |t|
t.string :FirstName
t.string :LastName
t.string :MiddleName
t.string :Gendre
t.string :Email
t.string :ImageUrl
t.string :Country
t.string :City
t.timestamps null: false
end
end
end
然后我需要改变的ImageUrl的类型,有人可以加载发送可能超过255个字符链路的路径所以我做了一次迁移如下
class ChangeImageUrlInWaiter < ActiveRecord::Migration
def up
change_column :friends, :ImageUrl , :text
end
def down
change_column :friends ,:ImageUrl , :string
end
end
现在,当我尝试使用回滚所有迁移
rake db:migrate VERSION=0
这引发了我的错误
rake aborted! StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Data too long for column 'ImageUrl' at row 1: ALTER TABLE
waiters
CHANGEImageUrl
ImageUrl
varchar(255) DEFAULT NULL
原因很清楚,没有出现在的ImageUrl数据是超过255个,现在的问题是如何克服这个问题,在保存数据或者即使有损失的一些数据
一种方式是在更改它的类型之前更新ImageUrl列。 –
@Зелёный你能解释一下,请 – ImranNaqvi