Boo*_*age 2 uuid ruby-on-rails
如何从rails generate命令生成模型,指定uuid主键的列类型?
我的目标是发出如下命令:
rails g model widget id{uuid}
Run Code Online (Sandbox Code Playgroud)
生成类似的迁移
create_table :widgets, id: :uuid do |t|
t.timestamps null: false
end
Run Code Online (Sandbox Code Playgroud)
我意识到我可以id: :uuid在生成迁移后添加,但我觉得必须有一些懒惰的方法来做到这一点。
这是一篇旧文章,但我也想做同样的事情。
首先- 启用 uuid :创建一个新的迁移文件rails g migration enable_uuid_extension并编辑该文件,如下所示:
class EnableUuidExtension < ActiveRecord::Migration
def change
enable_extension 'uuid-ossp'
end
end
Run Code Online (Sandbox Code Playgroud)
第二- 在 /config/application.rb 中,添加以下 3 行:
config.generators do |g|
g.orm :active_record, primary_key_type: :uuid
end
Run Code Online (Sandbox Code Playgroud)
然后……就是这样!如您所愿rails g model widget将生成:
create_table :widgets, id: :uuid do |t|
t.timestamps null: false
end
Run Code Online (Sandbox Code Playgroud)
并且将为您的所有下一次迁移执行相同的操作。
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |