diff --git a/application/config/version.php b/application/config/version.php index f2020d67c93..c879b9914ae 100644 --- a/application/config/version.php +++ b/application/config/version.php @@ -11,8 +11,9 @@ * See COPYRIGHT.php for copyright notices and details. */ + $config['versionnumber'] = '6.4.4'; -$config['dbversionnumber'] = 622; +$config['dbversionnumber'] = 623; $config['buildnumber'] = ''; $config['updatable'] = true; $config['templateapiversion'] = 3; diff --git a/application/helpers/update/updates/Update_619.php b/application/helpers/update/updates/Update_619.php index 252e1f59df2..b673f4d2f2b 100644 --- a/application/helpers/update/updates/Update_619.php +++ b/application/helpers/update/updates/Update_619.php @@ -11,6 +11,6 @@ class Update_619 extends DatabaseUpdateBase */ public function up() { - $this->db->createCommand()->addColumn('{{users}}', 'user_status', 'BOOLEAN DEFAULT TRUE'); + $this->db->createCommand()->addColumn('{{users}}', 'user_status', 'integer DEFAULT 1'); } } diff --git a/application/helpers/update/updates/Update_623.php b/application/helpers/update/updates/Update_623.php new file mode 100644 index 00000000000..4a7ba07fa89 --- /dev/null +++ b/application/helpers/update/updates/Update_623.php @@ -0,0 +1,23 @@ +db->driverName == 'pgsql') { + $table = \Yii::app()->db->schema->getTable('{{users}}'); + if (isset($table->columns['user_status']) && $table->columns['user_status']->dbType != 'integer') { + $this->db->createCommand("ALTER TABLE {{users}} ALTER COLUMN user_status DROP DEFAULT;")->execute(); + $this->db->createCommand("ALTER TABLE {{users}} ALTER COLUMN user_status TYPE INT USING CASE WHEN user_status=TRUE THEN 1 ELSE 0 END;")->execute(); + $this->db->createCommand("ALTER TABLE {{users}} ALTER COLUMN user_status SET DEFAULT 1;")->execute(); + } + } + } +} diff --git a/application/models/User.php b/application/models/User.php index cc81a3c6057..f11af486dd1 100644 --- a/application/models/User.php +++ b/application/models/User.php @@ -132,10 +132,11 @@ public function rules() /** @inheritdoc */ public function scopes() { + $userStatusType = \Yii::app()->db->schema->getTable('{{users}}')->columns['user_status']->dbType; $activeScope = array( 'condition' => 'user_status = :active', 'params' => array( - 'active' => 1, + 'active' => $userStatusType == 'boolean' ? 'TRUE' : '1', ) );