addSql(' ALTER TABLE user MODIFY roles LONGTEXT '); // Fetch all users to update their roles $users = $this->connection->fetchAllAssociative('SELECT id, roles FROM user'); foreach ($users as $user) { $roles = unserialize($user['roles']); $jsonRoles = json_encode($roles); $this->addSql('UPDATE user SET roles = ? WHERE id = ?', [$jsonRoles, $user['id']]); } $this->addSql(' ALTER TABLE user MODIFY roles JSON '); // this up() migration is auto-generated, please modify it to your needs $this->addSql('ALTER TABLE user CHANGE roles roles JSON NOT NULL'); // Convert the roles column data from longtext to JSON } public function down(Schema $schema): void { // this down() migration is auto-generated, please modify it to your needs // Reverse the conversion if necessary $users = $this->connection->fetchAllAssociative('SELECT id, roles FROM user'); foreach ($users as $user) { $roles = json_decode($user['roles'], true); $serializedRoles = serialize($roles); $this->addSql('UPDATE user SET roles = ? WHERE id = ?', [$serializedRoles, $user['id']]); } $this->addSql(' ALTER TABLE user MODIFY roles LONGTEXT '); $this->addSql('ALTER TABLE user CHANGE roles roles LONGTEXT NOT NULL COMMENT \'(DC2Type:array)\''); } }