使用 uuid-ossp 将 Rails 中的模型 id 更改为 uuid

ele*_*ify 3 uuid ruby-on-rails rails-migrations

我需要将现有模型的 id 更改为 uuid。我正在使用本指南:

http://rny.io/rails/postgresql/2013/07/27/use-uuids-in-rails-4-with-postgresql.html

但不知道如何使下面的迁移适应变化(而不是创建新的迁移):

 class CreateDocuments < ActiveRecord::Migration
  def change
   create_table :documents, id: :uuid  do |t|
      t.string :title
      t.string :author
      t.timestamps
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

小智 5

尝试这个。

    class documents < ActiveRecord::Migration
  def change
    add_column :documents, :uuid, :uuid, default: "uuid_generate_v4()", null: false

    change_table :documents do |t|
      t.remove :id
      t.rename :uuid, :id
    end
    execute "ALTER TABLE documents ADD PRIMARY KEY (id);"
  end
end
Run Code Online (Sandbox Code Playgroud)

来源