将测试数据存储在文件中的最佳格式是什么?

在我们的项目中,我们使用存储在.sql文件中的测试数据,我们有时会调用这些文件来使用这些测试数据重新创建数据库。 在这个文件中,我们存储如下数据:

Insert into Table1 ('col1', 'col2') values ('val1', 'val2'); Insert into Table1 ('col1', 'col2') values ('val3', 'val2'); Insert into Table1 ('col1', 'col2') values ('val4', 'val2'); ... 

问题是当我们添加或删除列时 ,我们必须遍历所有文件(在我的情况下,有许多大文件)并手动添加列和相应的值:这是大脑中的巨大痛苦。

所以我在想,其他人如何存储他们的测试数据? 我认为使用.yml文件(键值对)的rails方式是好方法,但是如何在非ruby-rails环境中使用它?

例如在rails中:

 david: name: David Heinemeier Hansson birthday: 1979-10-15 profession: Systems development steve: name: Steve Ross Kellock birthday: 1974-09-27 profession: guy with keyboard 

如果新列是模式中的非null / required列,那么我可以看到更新数据填充sql脚本时出现的问题。 但是,如果新列与特定测试无关,则相应的sql文件应该能够忽略架构更新。

另一种方法可能是

  • 维护预先填充了已知值的测试数据库。 创建副本并每次对副本运行测试。 每次测试运行后丢弃。
  • 每次更新模式时,都可以通过迁移脚本在rails中进行更新。然后,这些可以针对测试数据库运行,并且相对可忽略不计。