function init(Master $master, DBAL $adapter) { if (!$master->getJobs()->findByPk(array('id_job' => 0))) { $job = $master->create('job', array('name' => 'Scheduler', 'status' => 'A', 'system' => true)); $job->save(); $adapter->commit(); } }
public function migrate() { if (empty($this->toSchema)) { throw new \Exception("To schema not defined in Generator\\Database"); } if (empty($this->fromSchema)) { throw new \Exception("From schema not defined in Generator\\Database"); } $sql = $this->fromSchema->getMigrateToSql($this->toSchema, $this->dbal->getDatabasePlatform()); return $sql; }
public function testDelete() { /** * Log models delete test */ \DatabaseManager::generateFakeRecords(); $admin = $this->personRepository->findOne(array('login' => 'admin')); $admin->delete(); $map = $this->getRepositoryMap($this->personRepository); $this->assertCount(0, $map); $rows = $this->dbal->fetchAll("select * from person where login = '******'"); $this->assertCount(1, $rows); $adminRow = $rows[0]; $this->assertLessThanOrEqual(time(), strtotime($adminRow['v_end'])); /** * Delete test for model without log behaviour */ $newModule = $this->moduleRepository->create(array('name' => 'Name')); $newModule->save(); $map = $this->getRepositoryMap($this->moduleRepository); $this->assertCount(1, $map); $newModule->delete(); $map = $this->getRepositoryMap($this->moduleRepository); $this->assertCount(0, $map); $rows = $this->dbal->fetchAll("select * from module"); $this->assertCount(1, $rows); // there is 1 backend module \DatabaseManager::clearTables(); }
public function clearDatabase() { $schemaManager = $this->adapter->getSchemaManager(); foreach ($schemaManager->listTables() as $table) { foreach ($table->getForeignKeys() as $fk) { $schemaManager->dropForeignKey($fk->getName(), $table->getName()); } } foreach ($schemaManager->listTables() as $table) { $this->adapter->executeQuery("drop table {$table->getName()}"); } // sqlite has no sequences if ($schemaManager->getDatabasePlatform()->getName() == 'sqlite') { return; } foreach ($schemaManager->listSequences() as $sequence) { $schemaManager->dropSequence($sequence->getName()); } }
protected function execute(InputInterface $input, OutputInterface $output) { $fs = new Filesystem(); $schema = $this->application->getStorage()->getSchema(); // create.sql $dbalToSchema = $this->dbalConverter->convert($schema); $dbalFromSchema = $schema = new \Doctrine\DBAL\Schema\Schema(); $this->generator->setToSchema($dbalToSchema); $this->generator->setFromSchema($dbalFromSchema); $queries = $this->generator->migrate(); $debug = $input->getArgument('debug') == true; $create = $this->application->getProject()->getPath('build sql create.sql'); if ($debug) { echo "- build create.sql" . PHP_EOL; } $output->writeln('Create ' . $create); $fs->dumpFile($create, implode(";\n", $queries) . ';'); // migrate.sql $dbalFromSchema = $this->dbal->getSchemaManager()->createSchema(); $this->generator->setFromSchema($dbalFromSchema); $queries = $this->generator->migrate(); $migrate = $this->application->getProject()->getPath('build sql migrate.sql'); if ($debug) { echo "- build migrate.sql" . PHP_EOL; } $output->writeln('Create ' . $migrate); $fs->dumpFile($migrate, implode(";\n", $queries) . (count($queries) ? ';' : '')); if (!$debug) { echo implode(";\n", $queries) . ';'; } if ($input->getOption('test') != true) { foreach ($queries as $query) { $this->dbal->executeQuery($query); } if ($input->getOption('commit') == true) { $this->dbal->commit(); } } }
function init(Init $init, Master $master, DBAL $adapter) { $system = $master->getJobs()->findOne(array('system' => true)); $now = $adapter->fetchNow(); if ($system->getActiveTask()) { $message = sprintf("Task %s is running", $system->getActiveTask()->getIdTask()); if ($this->createSystemFail) { $task = $system->createActiveTask()->setDtEnd($now)->setStatus('F')->save(); $task->log($message); } throw new \Exception($message); } $task = $system->createActiveTask(); $tasks = $master->getTasks()->findWhere('dt_scheduled < :now and status = :status', array('now' => $now, 'status' => 'N')); if (count($tasks)) { $task->log(sprintf('Found %s task(s).', count($tasks))); foreach ($tasks as $task) { // } } else { $task->log('No tasks found'); } $task->setDtEnd($adapter->fetchNow(true))->setStatus('C')->save(); }
public function testManyToManyDelete() { \DatabaseManager::generateFakeRecords(); $admin = $this->personRepository->findOne(array('login' => 'admin')); $backend = $this->moduleRepository->findOne(array('name' => 'Backend')); $admin->addModuleDeveloperLink($backend); $links = $admin->getModuleDeveloperLinks(); $this->assertCount(1, $links); $link = $links[0]; $link->delete(); $links = $admin->getModuleDeveloperLinks(); $this->assertCount(0, $links); $rows = $this->dbal->fetchAll("select * from module_developer_link"); $this->assertCount(1, $rows); $now = $this->dbal->fetchNow(); $this->assertLessThanOrEqual(strtotime($now), $rows[0]['v_end']); \DatabaseManager::clearTables(); }
function deleteJob($id_job, JobRepository $repository) { $repository->findByPk(array('id_job' => $id_job))->delete(); $this->database->commit(); }