我在我的生产服务器上运行了迁移,并且我正在使用MySQL,我收到此错误:
Mysql2 ::错误:'admin'的默认值无效:ALTER TABLE
users
ADDadmin
tinyint(1)DEFAULT'false'。
我的迁移看起来像这样:
class AddAdminToUsers < ActiveRecord::Migration
def change
add_column :users, :admin, :boolean, default: :false
end
end
我理解错误是因为“false”不是tinyint的正确值,在这种情况下应该为0。我认为默认:: false是将布尔值默认为false的正确方法。
如何修复此问题,以便MySQL不会抱怨错误值?
答案 0 :(得分:11)
false
不是我相信的象征。试试这个
add_column :users, :admin, :boolean, default: false
<强> PS 强>
我错了。因此,您应该设置default: 0
:(。或者您可以修补ActiveRecord::Migration
,以便它接受true|false
答案 1 :(得分:1)
这适用于PostgreSQL和MySQL:
add_column :users, :admin, :boolean, :default => false
我没有尝试使用Ruby 1.9.2的新哈希语法,但我认为这不会是一个问题。