"""fix_some_of_the_artist_images Revision ID: 9c343f4c9aa4 Revises: c4b5b57dbfeb Create Date: 2021-10-20 13:09:58.339079 """ from alembic import op import sqlalchemy as sa from db import db # revision identifiers, used by Alembic. revision = '9c343f4c9aa4' down_revision = 'c4b5b57dbfeb' branch_labels = None depends_on = None def upgrade(): bind = op.get_bind() ## Fix pattern in existing broken bind.execute(''' update "Image" set url = concat('https://images-api.atlas.stream/artists/by_gras_participant_id/', split_part(url, '_', 5)) where url like 'https://images-api.atlas.stream/artists/by_gras_participant_id/GRAS_%%'; ''') ## Add missing images for artist bind.execute(''' insert into "Image" (url, related_object_id) select concat('https://images-api.atlas.stream/artists/by_gras_participant_id/', split_part(artist.external_id, '_', 2)) as url, polymorphable.id as related_object_id from "Artist" artist join "Polymorphable" polymorphable on artist.id = polymorphable.id and polymorphable.type = 'Artist' left join "Image" as image on image.related_object_id = polymorphable.id and polymorphable.type = 'Artist' where image.id is null; ''') def downgrade(): pass