]> git.immae.eu Git - github/wallabag/wallabag.git/blob - app/DoctrineMigrations/Version20160410190541.php
f35f54cebd4573b14c9748db7b67c9fc396571a5
[github/wallabag/wallabag.git] / app / DoctrineMigrations / Version20160410190541.php
1 <?php
2
3 namespace Application\Migrations;
4
5 use Doctrine\DBAL\Migrations\AbstractMigration;
6 use Doctrine\DBAL\Schema\Schema;
7 use Symfony\Component\DependencyInjection\ContainerAwareInterface;
8 use Symfony\Component\DependencyInjection\ContainerInterface;
9 use Wallabag\CoreBundle\Entity\Entry;
10
11 class Version20160410190541 extends AbstractMigration implements ContainerAwareInterface
12 {
13 /**
14 * @var ContainerInterface
15 */
16 private $container;
17
18 public function setContainer(ContainerInterface $container = null)
19 {
20 $this->container = $container;
21 }
22
23 /**
24 * @param Schema $schema
25 */
26 public function up(Schema $schema)
27 {
28 $this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL');
29 }
30
31 public function postUp(Schema $schema)
32 {
33 $em = $this->container->get('doctrine.orm.entity_manager');
34 $repository = $em->getRepository('WallabagCoreBundle:Entry');
35 $entries = $repository->findAll();
36
37 /** @var Entry $entry */
38 foreach ($entries as $entry) {
39 $this->addSql('UPDATE `wallabag_entry` SET `uuid` = "'.uniqid('', true).'" WHERE id = '.$entry->getId());
40 }
41 }
42
43 /**
44 * @param Schema $schema
45 */
46 public function down(Schema $schema)
47 {
48 $this->abortIf($this->connection->getDatabasePlatform()->getName() != 'sqlite', 'This down migration can\'t be executed on SQLite databases, because SQLite don\'t support DROP COLUMN.');
49 $this->addSql('ALTER TABLE `wallabag_entry` DROP `uuid`');
50 }
51 }