更改现有列类型

要通过迁移修改 Rails 中的现有列,请运行以下命令:

rails g migration change_column_in_table

这将在 db/migration 目录中创建一个新的迁移文件(如果它尚不存在),它将包含前缀为 timestamp 的文件和包含以下内容的迁移文件名:

def change
  change_column(:table_name, :column_name, :new_type)
end

Rails 指南 - 更改列

一种更长但更安全的方法

上面的代码可以防止用户回滚迁移。你可以通过将 change 方法拆分为单独的 updown 方法来避免此问题:

def up
  change_column :my_table, :my_column, :new_type
end

def down
  change_column :my_table, :my_column, :old_type
end