Doctrine предоставляет простой способ очистки всей базы данных с сохранением схемы.
$purger = new ORMPurger($this->getEntityManager());
$purger->purge();
Есть ли способ сделать это с Pomm?
Было бы особенно полезно сбрасывать тестовую БД между каждым тестовым сценарием, не заботясь о внешних ключах.
При использовании Doctrine это авторитет схемы, который означает, что схема базы данных отрисовывается с использованием PHP. В случае Pomm Postgres является авторитетом схемы, использующей SQL, поэтому Pomm не имеет представления о том, как удалить / воссоздать структуру базы данных. При использовании Менеджера моделей это может быть способ использования простого TRUNCATE my_table CASCADE
,
Если вы хотите восстановить базу данных в предыдущем состоянии, рассмотрите возможность использования мощного механизма транзакций PostgreSQL:
BEGIN;
-- do tests here
ROLLBACK; -- restore the database as before
Других решений пока нет …