【发布时间】:2015-07-20 08:45:42
【问题描述】:
我已经设置了一个新的迁移文件:
class ChangeCourseDefaults < ActiveRecord::Migration
def self.up
change_column_null :course_objects, :active, false
change_column_default :course_objects, :active, 0
end
end
我在我的 debian 服务器上以这种方式运行它(rails 4.2.1 ruby 2.1)
sudo bundle exec rake db:migrate:up VERSION=20150720095700 RAILS_ENV=test
然后我得到了这个错误:
Mysql2::Error: Data truncated for column 'active' at row 1: ALTER TABLE `course_objects` CHANGE `active` `active` tinyint(1) NOT NULL/var/www/html/test/xyz/vendor/bundle/ruby/2.1.0/gems/activerecord-4..2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:299:in `query'
有什么问题?
【问题讨论】:
-
之前是否有任何记录已经为空。?请检查
-
是的,有很多
-
是的,这就是为什么当这条线
change_column_null :course_objects, :active, false运行时它会检查所有值并确认不应该有任何空值。在这里它崩溃了。但我想下面粘贴的答案会解决你的问题。
标签: ruby-on-rails ruby rake