Rails + UUID生成的模式假定UUID是整数而不是字符串

Gor*_*nor 6 ruby-on-rails

我正在尝试使用UUID作为Rails应用程序的主键,并在遇到问题后遇到问题.

我在迁移中指定了:create_table:users,:id => false do | t | 然后这个:执行("ALTER TABLE users ADD PRIMARY KEY(uuid)")

在我的用户模型中:set_primary_key"uuid"

使用UUID工具生成UUID.

这一切都很好,我目前遇到的问题是生成的schema.rb如下所示:

create_table"users",:primary_key =>"uuid",:force => true do | t |

假设主键列是11个字符的整数而不是36个字符的字符串,因此运行迁移会生成正确的数据库,但测试数据库生成不正确,如果我要运行rake db:schema:load,则会失败还有......

需要弄清楚如何覆盖schema.rb假定如果有一个主键列它将是一个整数的方式....

set*_*rgo 0

我遇到了这个问题。据我所知,不可能超越 Rails 要求 PK 为整数的要求。为了绕过这个问题,我所做的就是在数据库上添加一个唯一的键,然后在每个模型上设置默认范围,以通过我的唯一字符串而不是常规整数进行搜索