将 Cucumber 与 Capybara 一起使用时,我必须从 SQL 数据转储中加载测试数据库数据。不幸的是,每个场景都需要 10 秒,这会减慢测试速度。
我发现了类似的东西:http ://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#How_to_Replicate
你认为二进制复制会比使用 SQL 文件更快吗?
我可以做些什么来加快恢复速度(我只恢复数据,而不是结构)?
您建议尝试哪些方法?
将 Cucumber 与 Capybara 一起使用时,我必须从 SQL 数据转储中加载测试数据库数据。不幸的是,每个场景都需要 10 秒,这会减慢测试速度。
我发现了类似的东西:http ://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#How_to_Replicate
你认为二进制复制会比使用 SQL 文件更快吗?
我可以做些什么来加快恢复速度(我只恢复数据,而不是结构)?
您建议尝试哪些方法?
您可以尝试将测试数据放入“模板”数据库(例如 mydb_template)
要准备测试场景,您只需使用模板删除数据库DROP DATABASE mydb
并根据模板重新创建:CREATE DATABASE mydb TEMPLATE = mydb_template;
.
当然,您需要连接到例如template0或postgres数据库才能删除mydb。
我认为这可能比导入转储更快。
我记得 PG 邮件列表上关于这种方法的讨论以及一些在 9.0 中修复的大型“模板”的性能问题。
(我只恢复数据,而不是结构)
COPY
只导入数据总是最快的。其他答案涉及恢复整个数据库。