mysql - 使用 Rails 迁移更改表信息

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

我必须做什么才能产生预期的结果?我想避免通过迁移定义数据库约束。

最佳答案

尝试显式添加 :null => true

关于mysql - 使用 Rails 迁移更改表信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7509151/

相关文章:

javascript - 如果 axios post 有多个输入,如何仅将一个值的邮件发送到后端

mysql - 'order clause' 中的未知列

mysql - Ruby on Rails 与 Xampp

database - 正则表达式 不像 - Oracle 11g

mysql - 应该创建什么索引?

mysql - 不带 AFTER 的 ALTER TABLE 与带 AFTER 的 ALTER TABLE

mysql - 我无法通过 PHPMyAdmin 导入数据库

ruby-on-rails - 关于抽佣 Assets 的困惑:clean/cleanup on the asset pipeline in rails

ruby-on-rails - 带有 rbenv 的多个版本的 Rails

php - 将数组中的随机值设置到数据库中