Ruby on rails Rails:如果没有';不存在

Ruby on rails Rails:如果没有';不存在,ruby-on-rails,records,legacy-code,Ruby On Rails,Records,Legacy Code,我正在开发一个必须与现有数据库和其他遗留应用程序集成的应用程序。在整个遗留应用程序中,隐式假设某些表中存在某些记录 例如,旧代码假定“statuses”表中存在一条名为“Valid”的记录,而users表中存在一条用户名为“System”的记录 当我深入挖掘遗留代码时,我会写下这些隐含的假设,使其明确,以便能够: 设置一个小的开发数据库,而不是使用非常巨大的生产数据库转储 设置一个暂存数据库(同样,没有来自生产的数以百万计的记录) 在干净、可预测的数据库中运行测试 是幂等的,不要弄乱现有的数据

我正在开发一个必须与现有数据库和其他遗留应用程序集成的应用程序。在整个遗留应用程序中,隐式假设某些表中存在某些记录

例如,旧代码假定“statuses”表中存在一条名为“Valid”的记录,而users表中存在一条用户名为“System”的记录

当我深入挖掘遗留代码时,我会写下这些隐含的假设,使其明确,以便能够:

  • 设置一个小的开发数据库,而不是使用非常巨大的生产数据库转储

  • 设置一个暂存数据库(同样,没有来自生产的数以百万计的记录)

  • 在干净、可预测的数据库中运行测试

  • 是幂等的,不要弄乱现有的数据库

所以问题是:如果系统记录不存在,你会用什么来创建它们?
您会选择rails迁移、种子、初始值设定项还是什么?

我认为种子将是解决问题的方法。

如果在创建和迁移数据库时必须将条目添加到数据库中,我个人更喜欢使用db:seed。或者,如果您希望在以后的阶段进行任何操作,迁移或rake任务也可以是一个选项