我想將 UUID 用作地址表中的列,但我不想將其用作主鍵。可能嗎?我該怎么做?
uj5u.com熱心網友回復:
要使用 UUID,您需要做的第一件事是在遷移時啟用它
rails g migration EnableUUID
class EnableUuid < ActiveRecord::Migration[7.1]
def change
enable_extension 'pgcrypto'
end
end
現在我們必須運行遷移
rake db:migrate
現在您可以創建一個新欄位
rails g migration AddUuidToUsers
class AddUuidToUsers < ActiveRecord::Migration[7.1]
def change
add_column :users, :uuid, :uuid, default: "gen_random_uuid()", null: false
end
end
對于非 PG 資料庫,請查看spickermann的帖子, 希望對您有所幫助
uj5u.com熱心網友回復:
當您使用 PostgreSQL 時,MZaragoza 的回答非常棒,因為gen_random_uuid 它是 PostgreSQL 特有的。
當您使用另一個資料庫或想要與資料庫無關時,您可能需要考慮在模型中生成 UUID,然后再將記錄保存到資料庫中,如下所示:
# in the migration
add_column :addresses, :uuid, :uuid
# in app/models/address.rb
before_save :generate_uuid
private
def generate_uuid
self.uuid = SecureRandom.uuid
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/498044.html
