配置
1,新建初始化文件,这将告诉Rails使用UUID作为主键类型。
# config/initializers/generators.rb
Rails.application.config.generators do |g|
g.orm :active_record, primary_key_type: :uuid
end
2,接下来,为Postgres数据库生成模型/迁移。
rails generate migration enable_uuid --no-test-framework
3,在Postgres数据库中启用pgcrypto扩展。
# db/migrate/2020xxx_enable_uuid.rb
class EnableUuid < ActiveRecord::Migration[6.0]
def change
enable_extension 'pgcrypto'
end
end
测试
1,生成模型。
rails g model user name:string email:string --no-test-framework
2,映射模型。
rails db:create && rails db:migrate
3,运行rails c进入控制台测试。
a = User.create(name: "aa", email: "aa@qq.com")
a.id
=> "a07758d9-54d1-47fd-8556-b127bac1de4d" # 此结果说明UUID配置成功