如何通过'rails g migration'命令向要添加的列添加默认值

时间:2014-03-06 06:04:56

标签: ruby-on-rails rails-activerecord database-migration

我知道如何在已创建的迁移文件中添加默认值。即,

`rails generate migration AddTestColumnToTesttable test_status:boolean` to create it.

它将生成此迁移:

class AddTestColumnToTable < ActiveRecord::Migration
  def change
    add_column :table, :test_status, :boolean, :default => true
  end
end

但是,我们可以通过rails g migration命令本身添加默认值吗?

2 个答案:

答案 0 :(得分:13)

您无法从命令行执行此操作 - 您必须编辑迁移文件并将相应的行更改为

add_column :table, :test_status, :boolean, :default => true

来源 - how to set default value to column in rails while creating migration

答案 1 :(得分:5)

** Rails 4.X + **

现在,由于没有选项可以将新列添加到具有通过rails migration中的terminal定义的默认值的表中, 以下步骤,将新列添加到现有表中,默认值为true或false。

1。从命令行运行迁移以添加新列

$ rails generate migration add_columnname_to_tablename columnname:boolean

上面的命令会在表格中添加一个新列。

2。通过编辑创建的新迁移文件将新列值设置为TRUE / FALSE。

class AddColumnnameToTablename < ActiveRecord::Migration
  def change
    add_column :tablename, :columnname, :boolean, default: false
  end
end

** 3。要对应用程序数据库表进行更改,请在终端**

中运行以下命令
$ rake db:migrate