connection->executeQuery('SELECT id, cfdata FROM person'); $this->addSQL('ALTER TABLE person RENAME COLUMN cfdata TO cfdata_old'); $this->addSql('ALTER TABLE person ALTER COLUMN cfdata_old DROP NOT NULL'); $this->addSQL('ALTER TABLE person ADD COLUMN cfdata jsonb'); foreach ($personIdAndCFData as $person) { $personId = $person['id']; $cFDataArray = unserialize($person['cfdata']); $cFDataJson = json_encode($cFDataArray); $this->addSql( 'UPDATE person set cfdata = :cfdatajson WHERE id = :id', ['cfdatajson' => $cFDataJson, 'id' => $personId] ); } } /** * Inverse of up * * @param Schema $schema */ public function down(Schema $schema): void { $this->addSQL('ALTER TABLE person DROP COLUMN cfdata'); $this->addSQL('ALTER TABLE person RENAME COLUMN cfdata_old TO cfdata'); $this->addSql('ALTER TABLE person ALTER COLUMN cfdata SET NOT NULL'); } }