ContentReviewOwnerMigrationTask::run()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 12
nc 2
nop 1
1
<?php
2
3
namespace SilverStripe\ContentReview\Tasks;
4
5
use SilverStripe\Control\HTTPRequest;
6
use SilverStripe\Dev\BuildTask;
7
use SilverStripe\ORM\DB;
8
9
/**
10
 * Task which migrates the ContentReview Module's SiteTree->OwnerID column to a new column name.
11
 */
12
class ContentReviewOwnerMigrationTask extends BuildTask
13
{
14
    /**
15
     * @param HTTPRequest $request
16
     */
17
    public function run($request)
18
    {
19
        $results = DB::query("SHOW columns from \"SiteTree\" WHERE \"field\" = 'OwnerID'");
20
21
        if ($results->numRecords() == 0) {
22
            echo "<h1>No need to run task. SiteTree->OwnerID doesn't exist</h1>";
23
        } else {
24
            DB::query("UPDATE \"SiteTree\" SET \"ContentReviewOwnerID\" = \"OwnerID\"");
25
            DB::query("UPDATE \"SiteTree_Live\" SET \"ContentReviewOwnerID\" = \"OwnerID\"");
26
            DB::query("UPDATE \"SiteTree_versions\" SET \"ContentReviewOwnerID\" = \"OwnerID\"");
27
            DB::query("ALTER TABLE \"SiteTree\" DROP COLUMN \"OwnerID\"");
28
            DB::query("ALTER TABLE \"SiteTree_Live\" DROP COLUMN \"OwnerID\"");
29
            DB::query("ALTER TABLE \"SiteTree_Versions\" DROP COLUMN \"OwnerID\"");
30
            echo "<h1>Migrated 3 tables. Dropped obsolete OwnerID column</h1>";
31
        }
32
    }
33
}
34