From 9a5231e8c424bf92c164c9bd27a9660c17cc7852 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 18 Apr 2016 22:45:52 +0200 Subject: [PATCH] Improve migration --- app/DoctrineMigrations/Version20160410190541.php | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/DoctrineMigrations/Version20160410190541.php b/app/DoctrineMigrations/Version20160410190541.php index 775dd6804..f35f54ceb 100644 --- a/app/DoctrineMigrations/Version20160410190541.php +++ b/app/DoctrineMigrations/Version20160410190541.php @@ -26,21 +26,18 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI public function up(Schema $schema) { $this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL'); + } + public function postUp(Schema $schema) + { $em = $this->container->get('doctrine.orm.entity_manager'); - $queryBuilder = $this->connection->createQueryBuilder(); - $queryBuilder - ->select('e.uuid') - ->andWhere('e.uuid IS NULL'); - $entries = $queryBuilder->execute(); + $repository = $em->getRepository('WallabagCoreBundle:Entry'); + $entries = $repository->findAll(); /** @var Entry $entry */ foreach ($entries as $entry) { - $entry->generateUuid(); - $em->persist($entry); - $em->clear(); + $this->addSql('UPDATE `wallabag_entry` SET `uuid` = "'.uniqid('', true).'" WHERE id = '.$entry->getId()); } - $em->flush(); } /** @@ -48,6 +45,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI */ public function down(Schema $schema) { + $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.'); $this->addSql('ALTER TABLE `wallabag_entry` DROP `uuid`'); } }