"""Backfill persisted Schaeffler branding to HartOMat. Revision ID: 063 Revises: a68e8c6fb61b """ from alembic import op import sqlalchemy as sa revision = "063" down_revision = "a68e8c6fb61b" branch_labels = None depends_on = None def upgrade() -> None: bind = op.get_bind() inspector = sa.inspect(bind) material_columns = {column["name"] for column in inspector.get_columns("materials")} if "schaeffler_code" in material_columns and "hartomat_code" not in material_columns: op.alter_column("materials", "schaeffler_code", new_column_name="hartomat_code") op.execute( """ UPDATE materials SET name = REPLACE(name, 'SCHAEFFLER_', 'HARTOMAT_') WHERE name LIKE 'SCHAEFFLER_%' """ ) op.execute( """ UPDATE materials SET source = 'hartomat_standard' WHERE source = 'schaeffler_standard' """ ) op.execute( """ UPDATE tenants SET name = 'HartOMat', slug = 'hartomat' WHERE lower(name) = 'schaeffler' OR lower(slug) = 'schaeffler' """ ) op.execute( """ UPDATE tenants SET tenant_config = jsonb_set( tenant_config, '{fallback_material}', '\"HARTOMAT_059999_FailedMaterial\"'::jsonb, true ) WHERE tenant_config ? 'fallback_material' """ ) def downgrade() -> None: bind = op.get_bind() inspector = sa.inspect(bind) material_columns = {column["name"] for column in inspector.get_columns("materials")} op.execute( """ UPDATE materials SET name = REPLACE(name, 'HARTOMAT_', 'SCHAEFFLER_') WHERE name LIKE 'HARTOMAT_%' """ ) op.execute( """ UPDATE materials SET source = 'schaeffler_standard' WHERE source = 'hartomat_standard' """ ) op.execute( """ UPDATE tenants SET name = 'Schaeffler', slug = 'schaeffler' WHERE lower(name) = 'hartomat' OR lower(slug) = 'hartomat' """ ) op.execute( """ UPDATE tenants SET tenant_config = jsonb_set( tenant_config, '{fallback_material}', '\"SCHAEFFLER_059999_FailedMaterial\"'::jsonb, true ) WHERE tenant_config ? 'fallback_material' """ ) if "hartomat_code" in material_columns and "schaeffler_code" not in material_columns: op.alter_column("materials", "hartomat_code", new_column_name="schaeffler_code")