/
Version20200501000000.php
40 lines (38 loc) · 1.59 KB
/
Version20200501000000.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace Concrete\Core\Updater\Migrations\Migrations;
use Concrete\Core\Updater\Migrations\AbstractMigration;
use Concrete\Core\Updater\Migrations\RepeatableMigrationInterface;
/**
* This migration updates topic category names imported from 5.x.
* That werent fixed in the 5.7 -> 8.x migration previously
*/
class Version20200501000000 extends AbstractMigration implements RepeatableMigrationInterface
{
/**
* {@inheritdoc}
*/
public function upgradeDatabase()
{
$sm = $this->connection->getSchemaManager();
if ($sm->tablesExist(['TreeCategoryNodes']) && !$sm->tablesExist(['_TreeCategoryNodes'])) {
$sm->renameTable('TreeCategoryNodes', '_TreeCategoryNodes');
$this->output(t('Updating Category Names...'));
$categories = $this->connection->fetchAll('select * from _TreeCategoryNodes');
$queryBuilder = $this->connection->createQueryBuilder();
$queryBuilder->update('TreeNodes')->set('treeNodeName', ':nodeName')
->where('treeNodeID = :nodeID')
->andWhere($queryBuilder->expr()->orX(
$queryBuilder->expr()->isNull('treeNodeName'),
$queryBuilder->expr()->eq('treeNodeName', '\'\'')
));
foreach ($categories as $category) {
$queryBuilder->setParameters([
'nodeID' => $category['treeNodeID'],
'nodeName' => $category['treeNodeCategoryName'],
]
);
$queryBuilder->execute();
}
}
}
}