diff --git a/migrations/Version20251019120358.php b/migrations/Version20251019120358.php index d3f1618..564cf5a 100644 --- a/migrations/Version20251019120358.php +++ b/migrations/Version20251019120358.php @@ -19,35 +19,71 @@ final class Version20251019120358 extends AbstractMigration public function up(Schema $schema): void { - $this->addSql('UPDATE domain + $this->addSql("UPDATE domain SET status = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(status) AS t(value) -)'); + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(status) = 'array' THEN status + WHEN jsonb_typeof(status) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(status))) + ELSE '[]'::jsonb + END + ) AS t(value) +)"); - $this->addSql('UPDATE domain_status + $this->addSql("UPDATE domain_status SET add_status = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(add_status) AS t(value) + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(add_status) = 'array' THEN add_status + WHEN jsonb_typeof(add_status) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(add_status))) + ELSE '[]'::jsonb + END + ) AS t(value) ), delete_status = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(delete_status) AS t(value) -)'); + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(delete_status) = 'array' THEN delete_status + WHEN jsonb_typeof(delete_status) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(delete_status))) + ELSE '[]'::jsonb + END + ) AS t(value) +)"); - $this->addSql('UPDATE domain_entity + $this->addSql("UPDATE domain_entity SET roles = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(roles) AS t(value) -)'); + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(roles) = 'array' THEN roles + WHEN jsonb_typeof(roles) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(roles))) + ELSE '[]'::jsonb + END + ) AS t(value) +)"); - $this->addSql('UPDATE nameserver_entity + $this->addSql("UPDATE nameserver_entity SET roles = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(roles) AS t(value) + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(roles) = 'array' THEN roles + WHEN jsonb_typeof(roles) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(roles))) + ELSE '[]'::jsonb + END + ) AS t(value) ), status = ( SELECT jsonb_agg(lower(value::text)::jsonb) - FROM jsonb_array_elements(status) AS t(value) -)'); + FROM jsonb_array_elements( + CASE + WHEN jsonb_typeof(status) = 'array' THEN status + WHEN jsonb_typeof(status) = 'object' THEN to_jsonb(array(SELECT jsonb_array_elements_text(jsonb_agg(value)) FROM jsonb_each_text(status))) + ELSE '[]'::jsonb + END + ) AS t(value) +)"); $this->addSql('UPDATE domain_event SET action = lower(action)'); $this->addSql('UPDATE entity_event SET action = lower(action)');