Я пытаюсь создать несколько интеграционных тестов для моего приложения,
и часть этого я хочу, чтобы заполнить мою заявку каждый раз
тесты запускаются. Однако база данных должна оставаться подключенной,
поэтому dropdb
/ createdb
не вариант.
Я сейчас занимаюсь:
pg_dump -F custom -O -x -d test-db > ./tests/test-db
до испытания и:
pg_restore --clean -d test-db ./tests/test-db
Для восстановления БД после каждого запуска теста.
Однако, похоже, это не работает, так как команда pg_restore
выдает много ошибок:
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 3771; 2618 175960 RULE skilled_outcome_group _RETURN dan
pg_restore: [archiver (db)] could not execute query: ERROR: cannot drop rule _RETURN on view public.skilled_outcome_group because view public.skilled_outcome_group requires it
pg_restore: [archiver (db)] Error from TOC entry 184; 1259 174070 TABLE outcome_group_skill dan
pg_restore: [archiver (db)] could not execute query: ERROR: cannot drop table public.outcome_group_skill because other objects depend on it
И так продолжается ... Я думал, --clean
предназначено, чтобы полностью отбросить все,
однако pg_restore
жалуется, что не может удалить таблицы / представления? Что-то не так с моей комбинацией флагов в pg_dump
/ pg_restore
?