【问题标题】:How to add default value to a column being added through 'rails g migration' command如何向通过“rails g migration”命令添加的列添加默认值
【发布时间】:2014-04-08 14:36:58
【问题描述】:

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

`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 命令本身添加默认值吗?

【问题讨论】:

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


【解决方案1】:

,不能从命令行完成,需要在迁移文件中更改

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

希望有帮助!

【讨论】:

  • 这是答案 - 他说不能从命令行完成。
  • 好点是它更新了之前创建的字段。至少,我在 PostgreSQL 上试过,它对我有用!
【解决方案2】:

**Rails 4.X +**

现在仍然没有选项可以将新列添加到表中,默认值是通过 rails 迁移中的终端定义的, 按照以下步骤将新列添加到现有表中,默认值为 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-29
    • 2012-05-11
    • 2021-01-27
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多