我正在开发一个必须与现有数据库和其他遗留应用程序集成的应用程序。在整个遗留应用程序中,隐含假设某些表中的某些记录存在。
例如,遗留代码假定名称为“Valid”的记录存在于表“statuses”中,并且用户名“System”的记录存在于用户表中。
当我深入研究遗留代码时,我正在写下这些隐含的假设以使其明确,以便我能够:
设置一个小型开发数据库,而不是使用非常非常庞大的生产数据库的转储;
设置一个暂存数据库(同样,没有来自生产的无数记录);
在干净、可预测的数据库中运行测试。
是幂等的,不要弄乱现有的数据库。
所以问题是:如果系统记录不存在,你会用什么来创建它们?你会选择 Rails 迁移、种子、初始化程序还是什么?