forked from wallabag/wallabag
Improve migration
This commit is contained in:
@ -26,21 +26,18 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||||||
public function up(Schema $schema)
|
public function up(Schema $schema)
|
||||||
{
|
{
|
||||||
$this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL');
|
$this->addSql('ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function postUp(Schema $schema)
|
||||||
|
{
|
||||||
$em = $this->container->get('doctrine.orm.entity_manager');
|
$em = $this->container->get('doctrine.orm.entity_manager');
|
||||||
$queryBuilder = $this->connection->createQueryBuilder();
|
$repository = $em->getRepository('WallabagCoreBundle:Entry');
|
||||||
$queryBuilder
|
$entries = $repository->findAll();
|
||||||
->select('e.uuid')
|
|
||||||
->andWhere('e.uuid IS NULL');
|
|
||||||
$entries = $queryBuilder->execute();
|
|
||||||
|
|
||||||
/** @var Entry $entry */
|
/** @var Entry $entry */
|
||||||
foreach ($entries as $entry) {
|
foreach ($entries as $entry) {
|
||||||
$entry->generateUuid();
|
$this->addSql('UPDATE `wallabag_entry` SET `uuid` = "'.uniqid('', true).'" WHERE id = '.$entry->getId());
|
||||||
$em->persist($entry);
|
|
||||||
$em->clear();
|
|
||||||
}
|
}
|
||||||
$em->flush();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,6 +45,7 @@ class Version20160410190541 extends AbstractMigration implements ContainerAwareI
|
|||||||
*/
|
*/
|
||||||
public function down(Schema $schema)
|
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`');
|
$this->addSql('ALTER TABLE `wallabag_entry` DROP `uuid`');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user