purge() публичный Метод

public purge ( )
 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->get('doctrine.orm.entity_manager');
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     $entityManager->clear();
 }
 /**
  * @EXT\Route(
  *     "/reinstall",
  *     name="claro_test_reinstall",
  * )
  *
  * @return Response
  */
 public function reinstallAction()
 {
     $kernel = $this->container->get('kernel');
     $start = new \DateTime();
     $om = $this->container->get('claroline.persistence.object_manager');
     // purge database
     $purger = new ORMPurger($this->container->get('doctrine.orm.entity_manager'));
     $purger->purge();
     // load required core fixtures
     $fixture = new LoadRequiredFixturesData();
     $referenceRepo = new ReferenceRepository($om);
     $fixture->setReferenceRepository($referenceRepo);
     $fixture->setContainer($this->container);
     $fixture->load($om);
     $om->startFlushSuite();
     // reset default template
     $defaultTemplatePath = $this->container->getParameter('kernel.root_dir') . '/../templates/default.zip';
     TemplateBuilder::buildDefault($defaultTemplatePath);
     // install plugin fixtures
     $bundles = $kernel->getBundles();
     $installer = $this->container->get('claroline.plugin.installer');
     foreach ($bundles as $bundle) {
         if ($bundle instanceof PluginBundle) {
             $installer->install($bundle);
         }
     }
     $om->endFlushSuite();
     $end = new \DateTime();
     $diff = $start->diff($end);
     $duration = $diff->i > 0 ? $diff->i . 'm ' : '';
     $duration .= $diff->s . 's';
     return new Response('Platform reinstalled (duration: ' . $duration . ')');
 }
 protected function givenDatabaseIsClear()
 {
     if (0 !== count($this->items->findAll())) {
         $purger = new ORMPurger($this->entityManager);
         $purger->purge();
     }
 }
Пример #4
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase()
 {
     $this->entityManager->getConnection()->getConfiguration()->setSQLLogger(null);
     $purger = new ORMPurger($this->entityManager);
     $purger->purge();
     $this->entityManager->clear();
 }
Пример #5
0
 protected function tearDown()
 {
     $purger = new ORMPurger($this->getDoctrine()->getManager());
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $purger->purge();
     parent::tearDown();
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $em = $this->getEntityManager();
     if ($input->isInteractive() && !$input->getOption('append')) {
         if (!$this->askConfirmation($input, $output, '<question>Careful, database will be purged. Do you want to continue y/N ?</question>', false)) {
             return;
         }
     }
     $app = $this->getApp();
     $path = $app->getApplicationBase($app->getAppNamespace()) . '/DataFixture';
     $loader = new DataFixturesLoader();
     $loader->loadFromDirectory($path);
     $fixtures = $loader->getFixtures();
     if (!$fixtures) {
         throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- {$path}"));
     }
     foreach ($fixtures as $fixture) {
         if ($fixture instanceof ContainerAwareInterface) {
             $fixture->setContainer($this->getContainer());
         }
     }
     $purger = new ORMPurger($em);
     if ($input->getOption('truncate-only')) {
         $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE);
         $purger->purge();
         exit(0);
     }
     $purger->setPurgeMode($input->getOption('truncate') ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE);
     $executor = new ORMExecutor($em, $purger);
     $executor->setLogger(function ($message) use($output) {
         $output->writeln(sprintf('  <comment>></comment> <info>%s</info>', $message));
     });
     $executor->execute($fixtures, $input->getOption('append'));
 }
Пример #7
0
 /**
  * {@inheritDoc}
  */
 public function setUp()
 {
     self::bootKernel();
     $this->em = static::$kernel->getContainer()->get('doctrine')->getManager("dblog");
     $purger = new ORMPurger($this->em);
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $purger->purge();
 }
Пример #8
0
 /**
  * Method that allows to purge database before load the scenario.
  *
  *
  * @BeforeScenario
  */
 public function purgeDatabase()
 {
     $connection = $this->getManager()->getConnection();
     $connection->executeUpdate('SET foreign_key_checks = 0;');
     $purger = new ORMPurger($this->getManager());
     $purger->purge();
     $connection->executeUpdate('SET foreign_key_checks = 1;');
 }
Пример #9
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->getService('doctrine.orm.entity_manager');
     $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 0;");
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 1;");
 }
Пример #10
0
 /**
  * {@inheritDoc}
  */
 public function setUp()
 {
     self::bootKernel();
     $this->em = static::$kernel->getContainer()->get('doctrine')->getManager("dblog");
     $this->rep = $this->em->getRepository("MaallsDBLogBundle:DbLog");
     $purger = new ORMPurger($this->em);
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $purger->purge();
 }
Пример #11
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase()
 {
     if (null === $this->entityManager) {
         throw new \RuntimeException('Cannot purge database. Entity manager is not set');
     }
     $this->entityManager->getConnection()->getConfiguration()->setSQLLogger(null);
     $purger = new ORMPurger($this->entityManager);
     $purger->purge();
     $this->entityManager->clear();
 }
Пример #12
0
 /**
  * {@inheritdoc}
  */
 public function beforeSuite(SuiteEvent $suiteEvent, array $options)
 {
     foreach ($options['managers'] as $managerName) {
         /** @var EntityManagerInterface $manager */
         $manager = $this->managerRegistry->getManager($managerName);
         $purger = new ORMPurger($manager);
         $purger->setPurgeMode(static::$purgeModes[$options['mode']]);
         $purger->purge();
     }
 }
 /**
  * @return $this
  */
 public function purgeDatabase()
 {
     try {
         $purger = new ORMPurger($this->em);
         $purger->purge();
     } catch (\Exception $e) {
         $this->recreateDb();
     }
     return $this;
 }
 public function tearDown()
 {
     if (!$this->em) {
         return;
     }
     $purger = new ORMPurger($this->em);
     $purger->purge();
     $fixtures = new Data();
     $fixtures->load($this->em);
 }
Пример #15
0
 protected function doPurgeFixtures()
 {
     $purger = new ORMPurger();
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $managers = $this->getContainer()->get('doctrine')->getManagerNames();
     foreach ($managers as $name => $service) {
         $purger->setEntityManager($this->getEntityManager($name));
         $purger->purge();
     }
 }
Пример #16
0
 public function purge()
 {
     if ($this->getPurgeMode() === self::PURGE_MODE_TRUNCATE) {
         // QND Hack: wenn mir jemand erklärt wies schön geht, gerne
         $this->em->getConnection()->executeQuery('set foreign_key_checks = 0');
         parent::purge();
         $this->em->getConnection()->executeQuery('set foreign_key_checks = 1');
     } else {
         parent::purge();
     }
 }
Пример #17
0
 /**
  * This is a performance improvement.
  * https://github.com/KnpLabs/FriendlyContexts/issues/195
  *
  * @BeforeScenario
  */
 public function beforeScenario($event)
 {
     $this->storeTags($event);
     if ($this->hasTags(['reset-schema', '~not-reset-schema'])) {
         $em = $this->get('doctrine')->getManager();
         $em->getConnection()->executeUpdate("SET FOREIGN_KEY_CHECKS=0;");
         $purger = new ORMPurger($em);
         $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE);
         $purger->purge();
         $em->getConnection()->executeUpdate("SET FOREIGN_KEY_CHECKS=1;");
     }
 }
Пример #18
0
 /**
  * @see Command
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $listenerManager = $this->container->get('doctrine_extensions.listener_manager');
     $listenerManager->addAllListeners($this->container->get('doctrine.orm.entity_manager'));
     $purger = new ORMPurger($this->container->get('doctrine.orm.entity_manager'));
     $purger->purge();
     $string_input = new StringInput('yrch:populate');
     $application = new Application($this->application->getKernel());
     $application->setAutoExit(false);
     $application->run($string_input, $output);
     $string_input = new StringInput('doctrine:data:load --append=true');
     $application->run($string_input, $output);
 }
Пример #19
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->getService('doctrine.orm.entity_manager');
     $entityManager->getConnection()->getConfiguration()->setSQLLogger(null);
     $isMySqlDriver = $entityManager->getConnection()->getDriver() instanceof PDOMySqlDriver;
     if ($isMySqlDriver) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 0;");
     }
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     if ($isMySqlDriver) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 1;");
     }
     $entityManager->clear();
 }
 /**
  * Execute test purge
  * 
  * @param string|null $expression
  * @param array $list
  */
 public function executeTestPurge($expression, array $list)
 {
     $em = $this->loadTestData();
     $excludedRepository = $em->getRepository(self::TEST_ENTITY_EXCLUDED);
     $includedRepository = $em->getRepository(self::TEST_ENTITY_INCLUDED);
     $excluded = $excludedRepository->findAll();
     $included = $includedRepository->findAll();
     $this->assertGreaterThan(0, count($included));
     $this->assertGreaterThan(0, count($excluded));
     $connection = $em->getConnection();
     $configuration = $connection->getConfiguration();
     $configuration->setFilterSchemaAssetsExpression($expression);
     $purger = new ORMPurger($em, $list);
     $purger->purge();
     $excluded = $excludedRepository->findAll();
     $included = $includedRepository->findAll();
     $this->assertEquals(0, count($included));
     $this->assertGreaterThan(0, count($excluded));
 }
Пример #21
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->getContainer()->get('doctrine.orm.entity_manager');
     $entityManager->getConnection()->getConfiguration()->setSQLLogger(null);
     $driver = $entityManager->getConnection()->getDriver();
     $supportsForeignKeyConstraints = $driver->getDatabasePlatform()->supportsForeignKeyConstraints();
     if ($supportsForeignKeyConstraints) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 0;");
     }
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     if ($driver->getDatabasePlatform()->supportsIdentityColumns()) {
         $entityManager->getConnection()->executeUpdate("ALTER TABLE expenses AUTO_INCREMENT = 1;");
     }
     if ($supportsForeignKeyConstraints) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 1;");
     }
     $entityManager->clear();
 }
Пример #22
0
/**
 * Remove all data from the app.
 */
function clear_app()
{
    // remove all old data from the database
    $em = doctrine()->getManager();
    $purger = new ORMPurger($em);
    $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE);
    $purger->purge();
    // clear the elasticsearch database
    if (container()->has('fos_elastica.index_manager')) {
        $es_index_manager = container()->get('fos_elastica.index_manager');
        $es_resetter = container()->get('fos_elastica.resetter');
        foreach ($es_index_manager->getAllIndexes() as $name => $index) {
            $es_resetter->resetIndex($name, false, true);
        }
    }
    $finder = new Finder();
    foreach ($finder->in(__DIR__ . "/data/")->name('*.sql') as $file) {
        load_sql($file);
    }
}
Пример #23
0
 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->getService('doctrine.orm.entity_manager');
     $entityManager->getConnection()->getConfiguration()->setSQLLogger(null);
     $isMySqlDriver = $entityManager->getConnection()->getDriver() instanceof PDOMySqlDriver;
     if ($isMySqlDriver) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 0;");
     }
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     if ($isMySqlDriver) {
         $entityManager->getConnection()->executeUpdate("SET foreign_key_checks = 1;");
     }
     $entityManager->clear();
     /*
     $process = new Process(sprintf('%s/console sylius:rbac:initialize --env=test', $this->getContainer()->getParameter('kernel.root_dir')));
     $process->run();
     
     if (!$process->isSuccessful()) {
         throw new \RuntimeException('Could not initialize permissions.');
     }
     */
 }
Пример #24
0
 protected function purgeDatabase()
 {
     $purger = new ORMPurger($this->entityManager);
     $purger->purge();
     $this->entityManager->clear();
 }
 /**
  *
  * @BeforeScenario
  */
 public function purgeDatabase()
 {
     $entityManager = $this->kernel->getContainer()->get('doctrine.orm.entity_manager');
     $purger = new ORMPurger($entityManager);
     $purger->purge();
 }
Пример #26
0
 /**
  * @BeforeScenario @database
  */
 public function cleanDatabase()
 {
     $purger = new ORMPurger($this->getDoctrine()->getManager());
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $purger->purge();
 }
Пример #27
0
 /**
  * Initialize ORM database.
  */
 protected function initializeORM()
 {
     $entityManager = $this->get('doctrine')->getManager();
     $purger = new ORMPurger($entityManager);
     $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE);
     $purger->purge();
 }
 private function purgeDatabase()
 {
     $purger = new ORMPurger($this->getEntityManager());
     $purger->purge();
 }
Пример #29
0
 protected static function purge(array $options = [])
 {
     $em = static::getClient(isset($options['new_client']) ? $options['new_client'] : false)->getContainer()->get('doctrine')->getManager();
     $purger = new ORMPurger($em);
     $purger->purge();
 }
Пример #30
0
 /**
  * Clears all the data!
  */
 public function reloadDatabase()
 {
     $purger = new ORMPurger($this->getEntityManager());
     $purger->purge();
 }