在我最初的迁移中,我有这个:
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`),
)
我必须做什么才能产生预期的结果?我想避免通过迁移定义数据库约束。
最佳答案
尝试显式添加 :null => true
。
关于mysql - 使用 Rails 迁移更改表信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509151/