Symfony Doctrine灯具 - 不要清除所有表格

时间:2016-12-27 14:22:10

标签: symfony doctrine fixtures

使用Symfony Fixtures Bundle时有什么方法可以防止清除一个表吗?

2 个答案:

答案 0 :(得分:1)

如果在控制器中进行清除,则可以编写如下代码:

use Doctrine\Common\DataFixtures\Purger\ORMPurger;
...

$excludedTables = ['my_table1', 'my_table42'];

$purger = new ORMPurger($this->getDoctrine()->getManager(), $excludedTables);

$purger->purge();

如果要在某些无法访问实体管理器的类中进行清除,则必须将其注入类的构造函数中,或者作为清除方法的参数。代码的其余部分看起来应该像以前一样,只有清除器的构造应该如下所示:

$purger = new ORMPurger($injectedEntityManager, $excluded);

答案 1 :(得分:1)

但是I created a PR有点晚了,它允许使用--exclude-table选项。如果/一旦合并,则可以使用以下语法:

php bin/console doctrine:fixtures:load --exclude-table=table_name --exclude-table=table_2_name

将正常运行灯具,但不会清除table_nametable_2_name