将 uuid_ossp 和 pgcrypto 都保存在 rails 项目中

Keeping both uuid_ossp and pgcrypto in a rails project

我正在开发一个旧的 Rails 项目 (rails 5),在旧的迁移中,他们使用 uuid_ossp 作为默认主键。

由于 Gemfile 没有指定 postgresql 版本,我现在使用较新的版本 (9.4) 到他们用来创建项目的版本。在 postgresql 9.4 中 uuid_ossp 被替换为 pgcrypto。因此,当您创建新模型时,Rails 将引发错误 no function gen_random_uuid().

我想问的是:

因为此刻我所要做的就是在 config/application.rb 中启用 pgcrypto 并且一切正常,无需触摸、修改或锁定任何东西。

事实证明最好保持原样。我没有尝试从 uuid_ossp 迁移到 pgcrypto,所以我不确定是否可以这样做,但有时最好的解决方案就是什么都不做。