如何生成迁移以更改 Rails 中的数据库列

How to generate migration to change database column in Rails

我想知道是否有一种方法可以生成以与创建 table、添加或删除列相同的方式更改某些内容的迁移。

例如为了创建 table 我会使用:

rails generate migration CreateProducts name:string part_number:string

要添加一个列,我会使用:

rails generate migration AddUserRefToProducts user:references

我从 Rails Guides 中获取了这个示例,但我找不到任何用于更改列的内容,假设设置默认值。

来自Rails Migrations

  • change_column(table_name, column_name, type, options):使用与 add_column.[=18= 相同的参数将列更改为不同的类型]

示例,在您的迁移中:

class ChangeColumnInTablename < ActiveRecord::Migration
  def change
    change_column :tablename, :field, :string , default: <default_value>
  end
end