将 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()
.
我想问的是:
- 我是否应该让我的项目同时启用
uuid_ossp
旧迁移和 pgcrypto
新迁移,
- 还是我应该将所有内容迁移到
pgcrypto
并将 postgresql
锁定到当前版本?
因为此刻我所要做的就是在 config/application.rb
中启用 pgcrypto
并且一切正常,无需触摸、修改或锁定任何东西。
事实证明最好保持原样。我没有尝试从 uuid_ossp
迁移到 pgcrypto
,所以我不确定是否可以这样做,但有时最好的解决方案就是什么都不做。
我正在开发一个旧的 Rails 项目 (rails 5),在旧的迁移中,他们使用 uuid_ossp
作为默认主键。
由于 Gemfile 没有指定 postgresql
版本,我现在使用较新的版本 (9.4
) 到他们用来创建项目的版本。在 postgresql 9.4 中 uuid_ossp
被替换为 pgcrypto
。因此,当您创建新模型时,Rails 将引发错误 no function gen_random_uuid()
.
我想问的是:
- 我是否应该让我的项目同时启用
uuid_ossp
旧迁移和pgcrypto
新迁移, - 还是我应该将所有内容迁移到
pgcrypto
并将postgresql
锁定到当前版本?
因为此刻我所要做的就是在 config/application.rb
中启用 pgcrypto
并且一切正常,无需触摸、修改或锁定任何东西。
事实证明最好保持原样。我没有尝试从 uuid_ossp
迁移到 pgcrypto
,所以我不确定是否可以这样做,但有时最好的解决方案就是什么都不做。