我正在尝试创建一个类似于:
的模型职位名称:字符串companyid:uuid
但是,当我运行db:create时,它会创建带有“title”列的表,但只是忽略“companyid”列。该应用程序当然崩溃,因为ActiveRecord找不到companyid列。如果我手动添加数据库列,应用程序可以工作(所以我知道RoR知道如何处理这种数据类型)..
我希望我的数据库配置和迁移脚本能够正常运行。我正在使用PostgreSQL 9.0和postgres-pg适配器。
我需要做什么特别的事情?谢谢!
答案 0 :(得分:4)
这应该有所帮助:
Ruby on Rails: UUID as your ActiveRecord primary key
您的迁移无效,因为UUID不是受支持的类型。如果查看链接,您将看到他们使用UUID作为列名称和字符串作为类型。他们还禁用了id列并将其UUID:string列设置为主键。
Postgres适配器中还有simplified type可能有助于在手动创建列后了解其工作原理。虽然它只是将UUID映射到字符串。
修复迁移,以便他们可以处理Postgres UUID可能是一个很好的低水平的贡献,如果有这个问题的人想要贡献Rails,但鉴于Postgres UUID似乎没有做太多,你的应用将不得不生成他们可能只是字符串的ID。