Медленное восстановление базы данных из файла SQL с учетом двоичной репликации в базу данных тестов отката - PullRequest
0 голосов
/ 15 декабря 2010

При использовании Cucumber с Capybara мне нужно загрузить данные тестовой базы данных из дампа данных SQL.К сожалению, для каждого сценария требуется 10 секунд, что замедляет тесты.

Я нашел что-то вроде: http://wiki.postgresql.org/wiki/Binary_Replication_Tutorial#How_to_Replicate

Как вы думаете, двоичная репликация будет быстрее, чем при использовании файлов SQL?

Что я могу сделать, чтобы сделать восстановление быстрее (я восстанавливаю только данные, а не структуру)?

Какие подходы вы бы порекомендовали попробовать?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2010

Вы можете попытаться поместить свои тестовые данные в базу данных «шаблона» (например, mydb_template)

Чтобы подготовить тестовый сценарий, вы просто отбрасываете свою базу данных с помощью DROP DATABASE mydb и воссоздаете на основе шаблона:1004 *.

Конечно, вам нужно подключиться, например, к template0 или postgres базе данных, чтобы иметь возможность удалить mydb .

Я думаю, это может быть быстрее, чем импортировать дамп.

Я вспоминаю обсуждение в списке рассылки PG относительно этого подхода и некоторых проблем с производительностью с большими «шаблонами», которые были исправлены в 9.0.

0 голосов
/ 15 декабря 2010

(я восстанавливаю только данные, а не структуру)

COPY всегда быстрее всего импортировать только данные.Другой ответ касается восстановления всей базы данных.

...