更改現有列型別

要通過遷移修改 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