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

09-07 14:57
查看更多