【发布时间】:2016-06-28 15:16:15
【问题描述】:
我正在尝试更新数据库中的字段以减少字符串的字符数限制。旧迁移看起来像这样:
class AddNoSaleLabelToCompany < ActiveRecord::Migration
def change
add_column :companies, :no_sale_label, :string, :limit => 18, :default => "NO SALE"
end
end
我创建了一个如下所示的新迁移:
class UpdateNoSaleLabelLimit < ActiveRecord::Migration
def up
change_column :companies, :no_sale_label, :string, :limit => 17, :default => "NO SALE"
end
def down
change_column :companies, :no_sale_label, :string, :limit => 18, :default => "NO SALE"
end
end
当我运行迁移时,它会 BOMBS 并出现错误:
StandardError: An error has occurred, all later migrations canceled:
Mysql2::Error: Data truncated for column 'no_sale_label' at row 1: ALTER TABLE `companies` CHANGE `no_sale_label` `no_sale_label` var
char(17) DEFAULT 'NO SALE'
我不太确定为什么会这样,有什么建议吗?
【问题讨论】:
标签: ruby-on-rails rails-migrations mysql2