107 lines
2.6 KiB
Python
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")
|