activerecord - 如何向没有 id 列的现有表添加 uuid 主键

标签 activerecord ruby-on-rails-4

除了删除并重新创建表之外,如何将 uuid 类型的主键 id 列添加到没有 id 字段创建的表(连接表)?

我尝试过:

add_column :organizations_users, :id, :uuid, primary_key: true

但该列未设置为主键。

看看 new_column_definition ActiveRecord 方法,上面的代码应该可以工作:

column.primary_key = type == :primary_key || options[:primary_key]

我一定是脑子放屁了......

最佳答案

一个老问题,但如果有人遇到它,这对我在 Rails 5.2 中有用。我已经在其他表中使用 UUID 作为主键 :id 列,因此如果您没有这样做,可能需要先进行设置。

def change
  add_column :products_questions, :id, :uuid, primary_key: true, default: -> { "gen_random_uuid()" }
end

关于activerecord - 如何向没有 id 列的现有表添加 uuid 主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18472168/

相关文章:

ruby-on-rails - 如何在相同的两个表之间建立多个多对多关系

php - Codeigniter 中的嵌套连接

ruby-on-rails-4 - simple_form 将参数传递给 Controller ​​ - 无模型

css - rails : How to add "style=" in grouped_select in simple form

ruby - 导轨 4 : Validating associated ActiveRecord models when using a Form Object

ruby-on-rails - Rails 事件记录查询一起列出的 2 个属性

mysql - 在 JRuby 上使用 ActiveRecord 对 MariaDB 的首次查询需要 5 分钟以上才能执行

ruby - 根据一对列删除重复记录?

ruby-on-rails - Dropzonejs 和 Paperclip、url 和 paramName?

ruby-on-rails - Searchkick 手动删除特定记录索引