0

将 Cucumber 与 Capybara 一起使用时,我必须从 SQL 数据转储中加载测试数据库数据。不幸的是,每个场景都需要 10 秒,这会减慢测试速度。

我发现了类似的东西:http ://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#How_to_Replicate

你认为二进制复制会比使用 SQL 文件更快吗?

我可以做些什么来加快恢复速度(我只恢复数据,而不是结构)?

您建议尝试哪些方法?

4

2 回答 2

2

您可以尝试将测试数据放入“模板”数据库(例如 mydb_template)

要准备测试场景,您只需使用模板删除数据库DROP DATABASE mydb并根据模板重新创建:CREATE DATABASE mydb TEMPLATE = mydb_template;.

当然,您需要连接到例如template0postgres数据库才能删除mydb

我认为这可能比导入转储更快。

我记得 PG 邮件列表上关于这种方法的讨论以及一些在 9.0 中修复的大型“模板”的性能问题。

于 2010-12-15T12:24:53.350 回答
0

(我只恢复数据,而不是结构)

COPY只导入数据总是最快的。其他答案涉及恢复整个数据库。

于 2010-12-15T18:33:34.680 回答