MOON
Server: Apache
System: Linux res.emeff.ca 3.10.0-962.3.2.lve1.5.24.10.el7.x86_64 #1 SMP Wed Mar 20 07:36:02 EDT 2019 x86_64
User: accemeff (1004)
PHP: 7.0.33
Disabled: NONE
Upload Files
File: /home/accemeff/vendor/craftcms/cms/src/migrations/m180418_205713_widget_cleanup.php
<?php

namespace craft\migrations;

use craft\db\Migration;
use craft\db\Query;
use craft\db\Table;

/**
 * m180418_205713_widget_cleanup migration.
 */
class m180418_205713_widget_cleanup extends Migration
{
    /**
     * @inheritdoc
     */
    public function safeUp()
    {
        $this->addColumn(Table::USERS, 'hasDashboard', $this->boolean()->notNull()->defaultValue(false)->after('lockoutDate'));

        $usersWithWidgets = (new Query())
            ->select(['userId'])
            ->distinct()
            ->from([Table::WIDGETS])
            ->column();

        $this->update(Table::USERS, [
            'hasDashboard' => true,
        ], [
            'id' => $usersWithWidgets,
        ], [], false);

        $this->delete(Table::WIDGETS, ['enabled' => false]);
        $this->dropColumn(Table::WIDGETS, 'enabled');
    }

    /**
     * @inheritdoc
     */
    public function safeDown()
    {
        echo "m180418_205713_widget_cleanup cannot be reverted.\n";
        return false;
    }
}