public function up() { $this->createTable('contentcontainer_setting', ['id' => Schema::TYPE_PK, 'module_id' => $this->string(50)->notNull(), 'contentcontainer_id' => Schema::TYPE_INTEGER . ' NOT NULL', 'name' => $this->string(50)->notNull(), 'value' => Schema::TYPE_TEXT . ' NOT NULL']); $this->createIndex('settings-unique', 'contentcontainer_setting', ['module_id', 'contentcontainer_id', 'name'], true); $this->addForeignKey('fk-contentcontainerx', 'contentcontainer_setting', 'contentcontainer_id', 'contentcontainer', 'id', 'CASCADE', 'CASCADE'); // Import old user settings $rows = (new Query())->select("*, contentcontainer.id as cid")->from('user_setting')->leftJoin('contentcontainer', 'user_setting.user_id = contentcontainer.pk AND contentcontainer.class=:class', [':class' => \humhub\modules\user\models\User::className()])->andWhere('contentcontainer.id IS NOT NULL')->all(); foreach ($rows as $row) { $this->insertSilent('contentcontainer_setting', ['module_id' => $row['module_id'], 'contentcontainer_id' => $row['cid'], 'name' => $row['name'], 'value' => $row['value']]); } // Import old space settings $rows = (new Query())->select("*, contentcontainer.id as cid")->from('space_setting')->leftJoin('contentcontainer', 'space_setting.space_id = contentcontainer.pk AND contentcontainer.class=:class', [':class' => humhub\modules\space\models\Space::className()])->andWhere('contentcontainer.id IS NOT NULL')->all(); foreach ($rows as $row) { $this->insertSilent('contentcontainer_setting', ['module_id' => $row['module_id'], 'contentcontainer_id' => $row['cid'], 'name' => $row['name'], 'value' => $row['value']]); } $this->dropTable('user_setting'); $this->dropTable('space_setting'); }
public function up() { $this->createTable('contentcontainer', array('id' => Schema::TYPE_PK, 'guid' => Schema::TYPE_STRING, 'class' => Schema::TYPE_STRING, 'pk' => Schema::TYPE_INTEGER, 'owner_user_id' => Schema::TYPE_INTEGER, 'wall_id' => Schema::TYPE_INTEGER), ''); $this->createIndex('unique_target', 'contentcontainer', ['class', 'pk'], true); $this->createIndex('unique_guid', 'contentcontainer', ['guid'], true); $this->addColumn('space', 'contentcontainer_id', Schema::TYPE_INTEGER); $this->addColumn('user', 'contentcontainer_id', Schema::TYPE_INTEGER); $spaces = (new \yii\db\Query())->select("space.*")->from('space'); foreach ($spaces->each() as $space) { $this->insertSilent('contentcontainer', ['guid' => $space['guid'], 'class' => humhub\modules\space\models\Space::className(), 'pk' => $space['id'], 'owner_user_id' => $space['created_by'], 'wall_id' => $space['wall_id']]); $this->updateSilent('space', ['contentcontainer_id' => Yii::$app->db->getLastInsertID()], 'space.id=:spaceId', [':spaceId' => $space['id']]); } $users = (new \yii\db\Query())->select("user.*")->from('user'); foreach ($users->each() as $user) { $this->insertSilent('contentcontainer', ['guid' => $user['guid'], 'class' => \humhub\modules\user\models\User::className(), 'pk' => $user['id'], 'owner_user_id' => $user['id'], 'wall_id' => $user['wall_id']]); $this->updateSilent('user', ['contentcontainer_id' => Yii::$app->db->getLastInsertID()], 'user.id=:userId', [':userId' => $user['id']]); } }