使用Rails迁移更改表信息

时间:2011-09-22 03:13:05

标签: mysql ruby-on-rails database migration

在我最初的迁移中,我有这个:

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`),
)

我需要做些什么来产生预期的结果?我想避免通过迁移来定义数据库约束。

1 个答案:

答案 0 :(得分:2)

尝试明确添加:null => true