我有一张 table :
db/migrate/20140731201801_create_voc_brands.rb:
class CreateVocBrands < ActiveRecord::Migration
def change
create_table :voc_brands do |t|
t.string :name
t.timestamps
end
end
end
但是我需要将表更改为此(如果我从零创建它):
class CreateVocBrands < ActiveRecord::Migration
def change
create_table :voc_brands, :id => false do |t|
t.uuid :id, :primary_key => true
t.string :name
t.timestamps
end
add_index :voc_brands, :id
end
end
如何使用迁移更改此设置?
最佳答案
我和你有同样的问题。要从默认 id 迁移到使用 uuid,我认为您可以使用类似于我所拥有的内容:
class ChangeVocBrandsPrimaryKey < ActiveRecord::Migration
def change
add_column :voc_brands, :uuid, :uuid, default: "uuid_generate_v4()", null: false
change_table :voc_brands do |t|
t.remove :id
t.rename :uuid, :id
end
execute "ALTER TABLE voc_brands ADD PRIMARY KEY (id);"
end
end
关于ruby-on-rails - Rails 4. 将表 id 迁移到 UUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25681599/