ruby-on-rails - Rails:将 UUID 主键添加到已经使用 UUID 作为主键的数据库中的表
问题描述
在 Rails 5.2 中,我有一个 has_and_belongs_to_many 连接表,我将其转换为 has_many :through 关系,因此现在需要表上的主键。
我已经在我的 Postgres 数据库中使用 UUID 作为主键,因此我需要添加一个 UUID 主键列,但无法获得正确的语法。
我试过了...
add_column :products_uw_questions, :uuid, :primary_key
但这只是创建了一个基于整数的列。
我也试过...
add_column :products_uw_questions, :id, :primary_key
认为已经存在的 UUID 设置会处理它,但没有运气。
如果我的数据库已经在使用 UUID 主键,那么正确的语法是什么?
解决方案
一直在尝试,直到这有效...
def change
add_column :products_questions, :id, :uuid, primary_key: true, default: -> { "gen_random_uuid()" }
end
推荐阅读
- python - Spyder - 在同一个内核上运行的 2 个不同的脚本
- google-cloud-platform - 如何将 GCP 中 VM 的输出定向到 stackdriver?
- c# - 可以将字节数组转换为 AudioClip 吗?
- rest - 从第 3 方 RESTful API 收集数据,然后重命名为与 REST 相同的名称
- azure-devops - Azure DevOps:缺少绿色测试的控制台输出
- php - 在 Laravel 5.5 中使用 Typeahead.js 使用两个表格列进行自动完成搜索
- c++ - 当模板参数是双向迭代器时,如何启用模板类专业化?
- c - 你如何处理未知数量的命令行参数?
- php - 更改 opencart 3.x 中显示的价格
- android - Flutter:找不到类“FlutterFragment”