/** * @BeforeScenario */ public function purgeDatabase(BeforeScenarioScope $scope) { $entityManager = $this->get('doctrine.orm.entity_manager'); $purger = new ORMPurger($entityManager); $purger->purge(); $entityManager->clear(); }
/** * {@inheritDoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $app = $this->getApplication()->getApp(); $em = $app['em']; $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = isset($app['em.fixtures']) ? $app['em.fixtures'] : array(); } $loader = new Loader(); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $purger->setPurgeMode($input->getOption('purge-with-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')); }
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')); }
protected function givenDatabaseIsClear() { if (0 !== count($this->items->findAll())) { $purger = new ORMPurger($this->entityManager); $purger->purge(); } }
/** * Loads data fixtures (ported from LoadDataFixturesDoctrineCommand class) * * @throws \Codeception\Exception\Module */ public function reloadFixtures() { $container = $this->getModule('Symfony2')->container; $kernel = $this->getModule('Symfony2')->kernel; $doctrine = $container->get('doctrine'); $em = $doctrine->getManager(); $paths = array(); foreach ($kernel->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } $loader = new DataFixturesLoader($container); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->execute($fixtures, false); }
/** * @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 . ')'); }
/** * @BeforeScenario */ public function purgeDatabase() { $this->entityManager->getConnection()->getConfiguration()->setSQLLogger(null); $purger = new ORMPurger($this->entityManager); $purger->purge(); $this->entityManager->clear(); }
protected function tearDown() { $purger = new ORMPurger($this->getDoctrine()->getManager()); $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE); $purger->purge(); parent::tearDown(); }
/** * {@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(); }
/** * 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;'); }
/** * @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;"); }
/** * {@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(); }
/** * @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(); }
/** * {@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(); } }
public function tearDown() { if (!$this->em) { return; } $purger = new ORMPurger($this->em); $purger->purge(); $fixtures = new Data(); $fixtures->load($this->em); }
/** * @return $this */ public function purgeDatabase() { try { $purger = new ORMPurger($this->em); $purger->purge(); } catch (\Exception $e) { $this->recreateDb(); } return $this; }
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(); } }
/** * @param InputInterface $input * @param OutputInterface $output * * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($this->em, $purger); $loader->loadFromDirectory($this->mainDir); foreach ($this->dirs as $dir) { $loader->loadFromDirectory($dir); } $executor->execute($loader->getFixtures()); }
/** * 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;"); } }
/** * @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); }
public function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $purger = new ORMPurger(); if ($input->getOption('purge-with-truncate')) { $purger->setPurgeMode(self::PURGE_MODE_TRUNCATE); } $executor = new ORMExecutor($this->em, $purger); foreach ($this->paths as $key => $value) { $loader->loadFromDirectory($value); } $executor->execute($loader->getFixtures(), $input->getOption('append')); }
public function loadFixtures() { $path = sprintf('%s/Fixtures', __DIR__); $loader = new DataFixturesLoader($this->container); $loader->loadFromDirectory($path); $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', $path)); } $purger = new ORMPurger($this->em); $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($this->em, $purger); $executor->execute($fixtures); }
/** * @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(); }
/** * @BeforeScenario */ public function beforeScenario() { $loader = new Loader(); $loader->addFixture(new \Stfalcon\Bundle\EventBundle\DataFixtures\ORM\LoadEventData()); $loader->addFixture(new \Stfalcon\Bundle\EventBundle\DataFixtures\ORM\LoadNewsData()); $loader->addFixture(new \Application\Bundle\UserBundle\DataFixtures\ORM\LoadUserData()); $this->em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); $this->em->getConnection()->executeUpdate("SET foreign_key_checks = 0;"); $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($this->em, $purger); $executor->purge(); $executor->execute($loader->getFixtures(), true); $this->em->getConnection()->executeUpdate("SET foreign_key_checks = 1;"); }
public function importAction() { if (!$this->getRequest() instanceof ConsoleRequest) { throw new RuntimeException('You can only use this action from a console.'); } $loader = new Loader(); $purger = new ORMPurger(); foreach ($this->dataFixtureManager->getAll() as $fixture) { $loader->addFixture($fixture); } if ($this->params()->fromRoute('purge-with-truncate')) { $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); } $executor = new ORMExecutor($this->dataFixtureManager->getObjectManager(), $purger); $executor->execute($loader->getFixtures(), (bool) $this->params()->fromRoute('append')); }
/** * @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(); }
/** * 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)); }
protected function execute(InputInterface $input, OutputInterface $output) { /** @var $doctrine \Doctrine\Common\Persistence\ManagerRegistry */ $doctrine = $this->getContainer()->get('doctrine'); $em = $doctrine->getManager($input->getOption('em')); if ($input->isInteractive() && !$input->getOption('append')) { $dialog = $this->getHelperSet()->get('dialog'); if (!$dialog->askConfirmation($output, '<question>Careful, database will be purged. Do you want to continue Y/N ?</question>', false)) { return; } } $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->getApplication()->getKernel()->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } } $loader = new DataFixturesLoader($this->getContainer()); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $purger->setPurgeMode($input->getOption('purge-with-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')); // Serialize reference repository to a file. So fixtures will be accessible by names inside functional tests. $referenceRepositoryFile = $this->getContainer()->getParameter('fixtures.reference_repository_path'); $serializedReferenceRepository = (new FixtureReferenceRepositorySerializer())->serialize($executor->getReferenceRepository()); file_put_contents($referenceRepositoryFile, $serializedReferenceRepository); $output->writeln(sprintf('<info>Reference repository saved to:</info> <comment>%s</comment>', realpath($referenceRepositoryFile))); }
/** * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $this->getMainContext()->getSubcontext('DoctrineFixturesContext')->loadFixtureClasses($loader, array('Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadNewsData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadPagesData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadReviewData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadMailQueueData', 'Application\\Bundle\\UserBundle\\DataFixtures\\ORM\\LoadUserData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadEventData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadPromoCodeData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadPaymentData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadMailQueueData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadTicketData', 'Stfalcon\\Bundle\\EventBundle\\DataFixtures\\ORM\\LoadMailQueueData')); /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); $em->getConnection()->executeUpdate("SET foreign_key_checks = 0;"); $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($em, $purger); $executor->purge(); $executor->execute($loader->getFixtures(), true); $em->getConnection()->executeUpdate("SET foreign_key_checks = 1;"); /** Maximize browser window */ $driver = $this->getSession()->getDriver(); if ($driver instanceof Selenium2Driver) { $driver->maximizeWindow(); } }
/** * 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); } }