在我最初的迁移中,我有这个:
create_table :credit_purchases do |t|
t.column :amount, :decimal, :precision => 8, :scale => 2, :null => false
t.column :time, :datetime, :null => false
end
其中产生了以下MySQL表定义:
CREATE TABLE `credit_purchases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`amount` decimal(8,2) NOT NULL,
`time` datetime NOT NULL,
PRIMARY KEY (`id`),
)
当我运行它时,它根本不会改变定义:
change_column :credit_purchases, :amount, :decimal, :precision => 8, :scale => 2
change_column :credit_purchases, :time, :datetime
我希望定义结果为:
CREATE TABLE `credit_purchases` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`amount` decimal(8,2) DEFAULT NULL,
`time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
)
我需要做些什么来产生预期的结果?我想避免通过迁移来定义数据库约束。
答案 0 :(得分:2)
尝试明确添加:null => true
。