Минимальный набор файлов данных PostgreSQL - PullRequest
0 голосов
/ 24 февраля 2019

Справочная информация: Я запускаю сквозные тесты, которые зависят от базы данных PostgreSQL.Мне нужно, чтобы эти тесты были быстрыми, распараллеливаемыми, детерминированными и изолированными.

Поэтому я хочу повторно создавать базу данных, включая схему, данные и индексы, как можно быстрее.Я создаю базовый образ:

  1. запускаю экземпляр PostgreSQL
  2. запускаем операторы SQL
  3. запускаем VACCUM FULL
  4. останавливаем экземпляр
  5. tar файлы в /var/lib/postgresql/data

Для каждого теста я быстро распаковываю этот образ и запускаю экземпляр PostgreSQL.


Проблема: Это все работает, но файлы на диске кажутся больше, чем необходимо.Небольшая база данных по-прежнему имеет размер 64 МБ.

Как получить меньший набор файлов для восстановления на уровне файлов?Уменьшить размер существующих файлов?Исключить некоторые файлы из резервной копии?

1 Ответ

0 голосов
/ 27 февраля 2019

Спасибо за разъяснение вашего варианта использования:

Я запускаю сквозные тесты, которые зависят от базы данных PostgreSQL.Мне нужно, чтобы эти тесты были быстрыми, распараллеливаемыми, детерминированными и изолированными.

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

Первоначальная идея - найти определенный набор файлов по пути и восстановить их - хрупка, потому что пути могут меняться и изменяются в разных версиях PostgreSQL.

Как уже говорилось в комментариях, болеедетерминированный способ сделать это с помощью более общих контейнерных технологий;тот, который хорошо протоптан и подходит для варианта использования , является Docker .Существуют различные другие опции контейнера .

В документации для Docker есть пример , как настроить контейнер, работающий с PostgreSQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...