Я пытаюсь перенести свои юнит-тесты с H2 на Postgresql.
В настоящее время H2 предоставляет мне схему в памяти, так что каждое соединение сопоставляется с уникальной схемой, создает таблицы, запускает тест и удаляет схему. Создание и уничтожение схемы автоматически обрабатывается H2.
Модульные тесты запускаются одновременно.
Каков наилучший способ сделать это в Postgresql? В частности,
- Как получить уникальную схему для каждого соединения?
- Должна ли среда тестирования генерировать уникальные имена или есть встроенный механизм для этого?
- Как я могу гарантировать, что схема будет отброшена при разрыве соединения?
- Я не хочу заканчивать висящими схемами, когда модульные тесты убиты.
- Какой подход даст максимальную производительность?
- Мне нужно создавать / отбрасывать десятки схем в секунду.
ОБНОВЛЕНИЕ : я нашел связанный ответ здесь, но он не может отбросить схемы в случае, если процесс, выполняющий модульные тесты, будет убит.
pg_temp
единственная схема правильна? Поэтому, когда я запускаю параллельные модульные тесты, не будут ли они забивать таблицы / данные друг друга?