Files
HartOMat/backend/alembic/versions/063_hartomat_rebrand_backfill.py
T

107 lines
2.6 KiB
Python

"""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")