"""remove_featured_artists_from_views Revision ID: 26dedce7b322 Revises: 7289d16beca6 Create Date: 2021-04-19 13:46:04.170923 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. from migrations.fixtures.delphi_tables.v1.data_migrator import DataMigrator from migrations.fixtures.delphi_tables.v1.tables import DelphiTables from migrations.fixtures.delphi_tables.views import DelphiViews revision = '26dedce7b322' down_revision = 'd5671a0effda' branch_labels = None depends_on = None def upgrade(): op.alter_column('Label', 'rep_owner_key', existing_type=sa.VARCHAR(), nullable=False) bind = op.get_bind() delphi_views = DelphiViews(bind) delphi_tables = DelphiTables(bind) migrator = DataMigrator(bind) bind.execute(delphi_views.project_artists_view(None)) migrator.refresh_project_artists_table() delphi_tables.reindex() def downgrade(): op.alter_column('Label', 'rep_owner_key', existing_type=sa.VARCHAR(), nullable=True) op.execute( """ CREATE OR REPLACE VIEW project_artists_view AS SELECT dsp_id('GRAS'::text, project.gras_project_code) AS project_id, artist.external_id AS artist_id FROM "Project" project JOIN "ProjectTargetItem" project_target_item ON project_target_item.project_id = project.id AND project_target_item.is_deleted IS FALSE AND (project_target_item.entity_type = ANY (ARRAY[0::bigint, 1::bigint])) JOIN "Polymorphable" polymorphable ON polymorphable.id = project_target_item.entity_id JOIN "Artist" artist ON artist.id = polymorphable.id WHERE project.is_deleted IS FALSE GROUP BY project.gras_project_code, artist.external_id; """ ) bind = op.get_bind() delphi_tables = DelphiTables(bind) migrator = DataMigrator(bind) migrator.refresh_project_artists_table() delphi_tables.reindex()