/** * @BeforeScenario */ public function purgeDb() { /** @var EntityManagerInterface $em */ $em = $this->kernel->getContainer()->get('doctrine')->getManager(); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->purge(); }
/** * @BeforeScenario */ public function setUp() { $entityManager = $this->getContainer()->get('doctrine')->getManager(); $purger = new ORMPurger($entityManager); $executor = new ORMExecutor($entityManager, $purger); $executor->purge(); $entityManager->clear(); }
/** * Загружаем необходимые фикстуры перед выполнением сценария * * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $loader->addFixture(new \Application\Bundle\UserBundle\DataFixtures\ORM\LoadUserData()); /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->kernel->getContainer()->get('doctrine')->getManager(); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->purge(); $executor->execute($loader->getFixtures()); }
/** * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $this->getMainContext()->getSubcontext('DoctrineFixturesContext')->loadFixtureClass($loader, 'Stfalcon\\Bundle\\SponsorBundle\\DataFixtures\\ORM\\LoadEventSponsorData'); /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->purge(); $executor->execute($loader->getFixtures(), true); }
/** * {@inheritdoc} */ public function purge() { $connection = $this->getObjectManager()->getConnection(); $mysqlPlatform = $this->purger->getPurgeMode() === ORMPurger::PURGE_MODE_TRUNCATE && $connection->getDatabasePlatform() instanceof MySqlPlatform; if ($mysqlPlatform) { $connection->exec('SET FOREIGN_KEY_CHECKS = 0;'); } parent::purge(); if ($mysqlPlatform) { $connection->exec('SET FOREIGN_KEY_CHECKS = 1;'); } }
/** @AfterScenario */ public function purgeTestDatabase() { // Purge tables $purger = new ORMPurger($this->em); $executor = new ORMExecutor($this->em, $purger); $executor->purge(); // Load standard fixtures $userFixtures = new LoadUsers(); $loader = new Loader(); $loader->addFixture($userFixtures); $executor->execute($loader->getFixtures()); }
/** * @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;"); }
/** * @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(); } }
/** * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $loader->addFixture(new \Stfalcon\Bundle\EventBundle\DataFixtures\ORM\LoadEventData()); $loader->addFixture(new \Stfalcon\Bundle\EventBundle\DataFixtures\ORM\LoadNewsData()); $em = $this->kernel->getContainer()->get('doctrine.orm.entity_manager'); /** @var $em \Doctrine\ORM\EntityManager */ $connection = $em->getConnection(); $connection->beginTransaction(); $connection->query('SET FOREIGN_KEY_CHECKS=0'); $connection->commit(); $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($em, $purger); $executor->purge(); $connection->beginTransaction(); $connection->query('SET FOREIGN_KEY_CHECKS=1'); $connection->commit(); $executor->execute($loader->getFixtures(), true); }
/** * @BeforeScenario */ public function purgeDatabase(BeforeScenarioScope $scope) { $loader = new Loader(); $loader->addFixture(new \Application\Bundle\CoreBundle\DataFixtures\ORM\LoadSolutionData()); $loader->addFixture(new \Application\Bundle\CoreBundle\DataFixtures\ORM\LoadTaskData()); $entityManager = $this->getService('doctrine.orm.entity_manager'); /** @var $em \Doctrine\ORM\EntityManager */ $connection = $entityManager->getConnection(); $connection->beginTransaction(); $connection->query('SET FOREIGN_KEY_CHECKS=0'); $connection->commit(); $purger = new ORMPurger($entityManager); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($entityManager, $purger); $executor->purge(); $connection->beginTransaction(); $connection->query('SET FOREIGN_KEY_CHECKS=1'); $connection->commit(); $executor->execute($loader->getFixtures(), true); }
/** * Purge the Doctrine ORM database */ protected function purgeDatabase() { /** @var EntityManager $em */ $em = $this->getEntityManager(); try { $connection = $em->getConnection(); if ($connection->getDriver() instanceof \Doctrine\DBAL\Driver\PDOMySql\Driver) { $connection->executeUpdate("SET foreign_key_checks = 0;"); } $purger = new ORMPurger(); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($em, $purger); $referenceRepository = new ProxyReferenceRepository($em); $executor->setReferenceRepository($referenceRepository); $executor->purge(); } catch (\Exception $ex) { throw new RuntimeException(sprintf('Could not purge database! Have you initialized it? Run: ' . PHP_EOL . 'app/console doctrine:database:create --env=test ' . PHP_EOL . 'app/console doctrine:schema:update --force --env=test')); } if ($connection->getDriver() instanceof \Doctrine\DBAL\Driver\PDOMySql\Driver) { $em->getConnection()->executeUpdate("SET foreign_key_checks = 1;"); } }
/** * Purge the Doctrine ORM database. */ protected function purgeDatabase() { /** @var EntityManager $em */ $em = $this->db('ORM')->getOm(); $connection = $em->getConnection(); if ($connection->getDriver() instanceof \Doctrine\DBAL\Driver\PDOMySql\Driver) { $connection->executeUpdate('SET foreign_key_checks = 0;'); } $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $referenceRepository = new ProxyReferenceRepository($em); $executor->setReferenceRepository($referenceRepository); $executor->purge(); if ($connection->getDriver() instanceof \Doctrine\DBAL\Driver\PDOMySql\Driver) { $em->getConnection()->executeUpdate('SET foreign_key_checks = 1;'); } }
/** * Purge the Doctrine ORM database. */ protected function purgeDatabase() { if (!self::$kernel->getContainer()->has('doctrine')) { return; } $manager = $this->getEntityManager(); $connection = $manager->getConnection(); if ($connection->getDriver() instanceof Driver) { $connection->executeUpdate('SET foreign_key_checks = 0;'); } $purger = new ORMPurger(); $executor = new ORMExecutor($manager, $purger); $referenceRepository = new ProxyReferenceRepository($manager); $executor->setReferenceRepository($referenceRepository); $executor->purge(); if ($connection->getDriver() instanceof Driver) { $connection->executeUpdate('SET foreign_key_checks = 1;'); } }
protected function execute(InputInterface $input, OutputInterface $output) { $file = $input->getArgument('file'); $em = $this->getContainer()->get('doctrine')->getManager(); if (!$this->askConfirmation($input, $output, '<question>Careful, database will be purged. Do you want to continue y/N ?</question>', false)) { return; } $purger = new ORMPurger($em); $purger->setPurgeMode(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->purge(); // Load users $stream = fopen($file, 'r'); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_users (id') !== FALSE) { break; } } $userManager = $this->getUserManager(); $userAdmin = $userManager->createUser(); $userAdmin->setPlainPassword('admin'); $userAdmin->setEnabled(true); $userAdmin->setEmail('*****@*****.**'); $userAdmin->setRoles(array('ROLE_SUPER_ADMIN')); $userAdmin->setFirstname('Romain'); $userAdmin->setLastname('Coeur'); $userAdmin->setPhone('0628974930'); $userManager->updateUser($userAdmin); $users = array('admin' => $userAdmin); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = $userManager->createUser(); $entity->setUsername($data[1]); $entity->setUsernameCanonical($data[1]); $entity->setEmail($data[1]); $entity->setEmailCanonical($data[1]); $entity->setEnabled(true); $entity->setPlainPassword('wild1234'); $entity->setPassword('9908e42e69c19bc0e6c0ce1bf05b381fbc94ca10aa7e6b648815d676248f8a3fe2ee124f7d9d375e9f909036e45cc9e766e3c9369655c1db1f331e71c17bc2c9'); $userManager->updateUser($entity); $users[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s users loaded</info>', count($users))); // Add home data to users rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_homes (id') !== FALSE) { break; } } $nb = 0; while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $user = $users[$data[11]]; $user->setFirstname($data[1]); $user->setLastname($data[2]); $user->setPhone($data[3]); $user->setTelephoneSecondaire($data[4]); $user->setAdresse($data[5]); $user->setCodePostal($data[6]); $user->setCommune($data[7]); $user->setModeDePaiement($data[8]); $user->setGender($data[9]); $user->setCaf($data[10]); $em->persist($user); $nb++; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s users updated</info>', $nb)); // Load schools rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_schools (id') !== FALSE) { break; } } $schools = array(); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = new School(); $entity->setName($data[1]); $entity->setAdress($data[2]); $em->persist($entity); $schools[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s schools loaded</info>', count($schools))); // Load divisions rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_classrooms (id') !== FALSE) { break; } } $divisions = array(); while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } $entity = new Division(); $entity->setSchool($schools[$data[10]]); $gradeAndTeacher = explode(' DE ', $data[1]); $entity->setGrade($gradeAndTeacher[0]); $entity->setHeadTeacher($gradeAndTeacher[1]); $em->persist($entity); $divisions[$data[0]] = $entity; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s divisions loaded</info>', count($divisions))); // Load children rewind($stream); while ($line = fgets($stream)) { if (strpos($line, 'COPY multipass_children (id') !== FALSE) { break; } } $nb = 0; while ($line = fgets($stream)) { $data = explode(' ', $line); if ($data[0] == "\\.\n") { break; } if ($data[5] == '\\N') { continue; } $entity = new Eleve(); $entity->setPrenom($data[1]); $entity->setNom($data[2]); $entity->setDateDeNaissance(new \DateTime($data[3])); $entity->setUser($users[$data[4]]); $entity->setDivision($divisions[$data[5]]); $habits = array(); if ($data[8] == 't') { $habits[] = "lundi"; } if ($data[9] == 't') { $habits[] = "mardi"; } if ($data[10] == 't') { $habits[] = "jeudi"; } if ($data[11] == 't') { $habits[] = "vendredi"; } $entity->setHabits($habits); $entity->setAllergie($data[13]); $entity->setRegimeSansPorc($data[14]); $em->persist($entity); $nb++; } $em->flush(); $output->writeln(sprintf(' <comment>></comment> <info>%s divisions loaded</info>', $nb)); fclose($stream); $output->writeln(sprintf('<info>done</info>')); }
protected function purge() { $purger = new ORMPurger($this->em); $executor = new ORMExecutor($this->em, $purger); $executor->purge(); }
/** * Remove all fixtures from the database */ public function purgeDatabase() { $purger = new ORMPurger($this->object_manager); $executor = new ORMExecutor($this->object_manager, $purger); $executor->purge(); }
/** * Load fixtures into database */ private function loadFixtures() { $em = $this->entityManager; $this->dispatchEvent($em, 'preTruncate'); $purger = new ORMPurger($em); $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $executor = new ORMExecutor($em, $purger); $executor->setReferenceRepository($this->getReferenceRepository()); if (!$this->useBackup) { $executor->purge(); } $this->runMigrations(); $executor->execute($this->fixtures, true); $this->dispatchEvent($em, 'postTruncate'); }