369 lines
13 KiB
Python
369 lines
13 KiB
Python
"""Finish Import
|
|
|
|
Revision ID: 87a06eaadd34
|
|
Revises: 74058d75b7a0
|
|
Create Date: 2020-12-31 08:49:38.153235
|
|
|
|
"""
|
|
import sqlalchemy as sa
|
|
|
|
from alembic import op
|
|
from sqlalchemy import column, select, table
|
|
from sqlalchemy.dialects import postgresql
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision = "87a06eaadd34"
|
|
down_revision = "74058d75b7a0"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def update_acts():
|
|
cases = table(
|
|
"cases",
|
|
column("act_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_act_id", sa.Integer()),
|
|
)
|
|
acts = table("acts", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer()))
|
|
op.execute(cases.update(values={"act_id": select([acts.c.id]).where(cases.c.old_act_id == acts.c.old_id)}))
|
|
op.drop_column("cases", "old_act_id")
|
|
op.drop_column("acts", "old_id")
|
|
|
|
|
|
def update_advocates():
|
|
op.drop_column("advocates", "old_id")
|
|
|
|
|
|
def update_case_types():
|
|
cases = table(
|
|
"cases",
|
|
column("case_type_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_case_type_id", sa.Integer()),
|
|
)
|
|
case_types = table(
|
|
"case_types",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
op.execute(
|
|
cases.update(
|
|
values={"case_type_id": select([case_types.c.id]).where(cases.c.old_case_type_id == case_types.c.old_id)}
|
|
)
|
|
)
|
|
# op.execute(case_types.update(values={"name": "Blank"}).where(case_types.c.name == ""))
|
|
op.drop_column("cases", "old_case_type_id")
|
|
op.drop_column("case_types", "old_id")
|
|
# op.alter_column('cases', 'case_type_id', existing_type=postgresql.UUID(), nullable=False)
|
|
|
|
|
|
def update_court_statuses():
|
|
cases = table(
|
|
"cases",
|
|
column("court_status_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_court_status_id", sa.Integer()),
|
|
)
|
|
hearings = table(
|
|
"hearings",
|
|
column("court_status_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_court_status_id", sa.Integer()),
|
|
)
|
|
court_statuses = table(
|
|
"court_statuses",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
op.execute(
|
|
cases.update(
|
|
values={
|
|
"court_status_id": select([court_statuses.c.id]).where(
|
|
cases.c.old_court_status_id == court_statuses.c.old_id
|
|
)
|
|
}
|
|
)
|
|
)
|
|
op.execute(
|
|
hearings.update(
|
|
values={
|
|
"court_status_id": select([court_statuses.c.id]).where(
|
|
hearings.c.old_court_status_id == court_statuses.c.old_id
|
|
)
|
|
}
|
|
)
|
|
)
|
|
# op.execute(court_statuses.update(values={"name": "Blank"}).where(court_statuses.c.name == ""))
|
|
op.drop_column("cases", "old_court_status_id")
|
|
op.drop_column("hearings", "old_court_status_id")
|
|
op.drop_column("court_statuses", "old_id")
|
|
# op.alter_column('cases', 'court_status_id', existing_type=postgresql.UUID(), nullable=False)
|
|
op.alter_column('hearings', 'court_status_id', existing_type=postgresql.UUID(), nullable=False)
|
|
|
|
|
|
def update_courts():
|
|
cases = table(
|
|
"cases",
|
|
column("court_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_court_id", sa.Integer()),
|
|
)
|
|
courts = table("courts", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer()))
|
|
op.execute(cases.update(values={"court_id": select([courts.c.id]).where(cases.c.old_court_id == courts.c.old_id)}))
|
|
op.drop_column("cases", "old_court_id")
|
|
op.drop_column("courts", "old_id")
|
|
# op.alter_column('cases', 'court_id', existing_type=postgresql.UUID(), nullable=False)
|
|
|
|
|
|
def update_departments():
|
|
cases = table(
|
|
"cases",
|
|
column("department_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_department_id", sa.Integer()),
|
|
)
|
|
offices = table(
|
|
"offices",
|
|
column("department_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_department_id", sa.Integer()),
|
|
)
|
|
departments = table(
|
|
"departments",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
op.execute(
|
|
cases.update(
|
|
values={
|
|
"department_id": select([departments.c.id]).where(cases.c.old_department_id == departments.c.old_id)
|
|
}
|
|
)
|
|
)
|
|
op.execute(
|
|
offices.update(
|
|
values={
|
|
"department_id": select([departments.c.id]).where(offices.c.old_department_id == departments.c.old_id)
|
|
}
|
|
)
|
|
)
|
|
# op.execute(departments.update(values={"name": "Blank"}).where(departments.c.name == ""))
|
|
op.drop_column("cases", "old_department_id")
|
|
op.drop_column("offices", "old_department_id")
|
|
op.drop_column("departments", "old_id")
|
|
|
|
|
|
def update_natures():
|
|
cases = table(
|
|
"cases",
|
|
column("nature_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_nature_id", sa.Integer()),
|
|
)
|
|
natures = table("natures", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer()))
|
|
op.execute(
|
|
cases.update(values={"nature_id": select([natures.c.id]).where(cases.c.old_nature_id == natures.c.old_id)})
|
|
)
|
|
op.drop_column("cases", "old_nature_id")
|
|
op.drop_column("natures", "old_id")
|
|
|
|
|
|
def update_office_statuses():
|
|
cases = table(
|
|
"cases",
|
|
column("office_status_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_office_status_id", sa.Integer()),
|
|
)
|
|
office_statuses = table(
|
|
"office_statuses", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer())
|
|
)
|
|
op.execute(
|
|
cases.update(
|
|
values={
|
|
"office_status_id": select([office_statuses.c.id]).where(
|
|
cases.c.old_office_status_id == office_statuses.c.old_id
|
|
)
|
|
}
|
|
)
|
|
)
|
|
op.drop_column("cases", "old_office_status_id")
|
|
op.drop_column("office_statuses", "old_id")
|
|
|
|
|
|
def update_offices():
|
|
cases = table(
|
|
"cases",
|
|
column("office_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_office_id", sa.Integer()),
|
|
)
|
|
offices = table("offices", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer()))
|
|
op.execute(
|
|
cases.update(values={"office_id": select([offices.c.id]).where(cases.c.old_office_id == offices.c.old_id)})
|
|
)
|
|
op.drop_column("cases", "old_office_id")
|
|
op.drop_column("offices", "old_id")
|
|
|
|
|
|
def update_cases():
|
|
hearings = table(
|
|
"hearings",
|
|
column("case_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_case_id", sa.Integer()),
|
|
)
|
|
cases = table("cases", column("id", postgresql.UUID(as_uuid=True)), column("old_id", sa.Integer()))
|
|
op.execute(
|
|
hearings.update(values={"case_id": select([cases.c.id]).where(hearings.c.old_case_id == cases.c.old_id)})
|
|
)
|
|
op.drop_column("hearings", "old_case_id")
|
|
op.drop_column("cases", "old_id")
|
|
op.alter_column('hearings', 'case_id', existing_type=postgresql.UUID(), nullable=False)
|
|
op.create_unique_constraint(op.f("uq_hearings_next_hearing_date"), "hearings", ["next_hearing_date", "case_id"])
|
|
|
|
|
|
def update_auth():
|
|
users = table(
|
|
"users",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
roles = table(
|
|
"roles",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
permissions = table(
|
|
"permissions",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("old_id", sa.Integer()),
|
|
column("name", sa.Unicode(length=255)),
|
|
)
|
|
ur = table(
|
|
"user_roles",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("user_id", postgresql.UUID(as_uuid=True)),
|
|
column("role_id", postgresql.UUID(as_uuid=True)),
|
|
)
|
|
rp = table(
|
|
"role_permissions",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("role_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_user_id", sa.Integer()),
|
|
column("permission_id", postgresql.UUID(as_uuid=True)),
|
|
column("old_permission_id", sa.Integer()),
|
|
)
|
|
|
|
op.execute(roles.insert().from_select([roles.c.old_id, roles.c.name], select([users.c.old_id, users.c.name])))
|
|
op.execute(
|
|
ur.insert().from_select(
|
|
[ur.c.user_id, ur.c.role_id],
|
|
select([users.c.id, roles.c.id]).select_from(users.join(roles, users.c.old_id == roles.c.old_id)),
|
|
)
|
|
)
|
|
op.execute(rp.update(values={"role_id": select([roles.c.id]).where(rp.c.old_user_id == roles.c.old_id)}))
|
|
op.execute(
|
|
rp.update(
|
|
values={"permission_id": select([permissions.c.id]).where(rp.c.old_permission_id == permissions.c.old_id)}
|
|
)
|
|
)
|
|
op.drop_column("role_permissions", "old_user_id")
|
|
op.drop_column("role_permissions", "old_permission_id")
|
|
op.drop_column("users", "old_id")
|
|
op.drop_column("roles", "old_id")
|
|
op.drop_column("permissions", "old_id")
|
|
op.execute(rp.delete().where(rp.c.permission_id == None)) # noqa: E711
|
|
op.alter_column("role_permissions", "permission_id", existing_type=postgresql.UUID(), nullable=False)
|
|
op.alter_column("role_permissions", "role_id", existing_type=postgresql.UUID(), nullable=False)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("StatusInCourt"))
|
|
.values({"name": op.inline_literal("Court Statuses")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("Statuses"))
|
|
.values({"name": op.inline_literal("Office Statuses")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("CreateUsers"))
|
|
.values({"name": op.inline_literal("Users")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("AssignRoles"))
|
|
.values({"name": op.inline_literal("Advocates")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("CaseTypes"))
|
|
.values({"name": op.inline_literal("Case Types")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("ContactPersons"))
|
|
.values({"name": op.inline_literal("Contacts")})
|
|
)
|
|
op.execute(
|
|
permissions.update()
|
|
.where(permissions.c.name == op.inline_literal("AllowFeeMenu"))
|
|
.values({"name": op.inline_literal("Case Sources")})
|
|
)
|
|
|
|
|
|
def update_hearings():
|
|
op.drop_column("hearings", "old_id")
|
|
|
|
|
|
def add_case_sources():
|
|
sources = table(
|
|
"case_sources",
|
|
column("id", postgresql.UUID(as_uuid=True)),
|
|
column("name", sa.Unicode(length=255)),
|
|
column("prefix", sa.Unicode(length=255)),
|
|
)
|
|
op.execute(sources.insert().values(name="HLC Cases", prefix="HRC"))
|
|
op.execute(sources.insert().values(name="HUDA Cases", prefix="AHC"))
|
|
op.execute(sources.insert().values(id="08efc7cc-e4a1-4d24-bcba-58ca9bc29994", name="Private Cases", prefix="APC"))
|
|
op.execute(sources.insert().values(name="Board & Corp. Cases", prefix="A"))
|
|
op.execute(sources.insert().values(name="Opinion Cases", prefix="AOC"))
|
|
op.execute(sources.insert().values(name="Misc", prefix="Misc"))
|
|
op.execute(sources.insert().values(name="PAC", prefix="PAC"))
|
|
op.execute(sources.insert().values(name="ABC", prefix="ABC"))
|
|
|
|
cases = table(
|
|
"cases",
|
|
column("old_office_file_number", sa.Unicode(length=255)),
|
|
column("case_source_id", postgresql.UUID(as_uuid=True)),
|
|
)
|
|
op.execute(
|
|
cases.update(
|
|
values={
|
|
"case_source_id": select([sources.c.id]).where(
|
|
cases.c.old_office_file_number.ilike(sources.c.prefix + "-%")
|
|
)
|
|
}
|
|
)
|
|
)
|
|
op.alter_column('cases', 'case_source_id', existing_type=postgresql.UUID(), nullable=False)
|
|
op.drop_column("cases", "old_office_file_number")
|
|
op.create_unique_constraint(op.f("uq_cases_office_file_number"), "cases", ["office_file_number", "case_source_id"])
|
|
|
|
|
|
def upgrade():
|
|
update_acts()
|
|
update_advocates()
|
|
update_case_types()
|
|
update_court_statuses()
|
|
update_courts()
|
|
update_departments()
|
|
update_natures()
|
|
update_office_statuses()
|
|
update_offices()
|
|
update_cases()
|
|
update_auth()
|
|
update_hearings()
|
|
add_case_sources()
|
|
|
|
|
|
def downgrade():
|
|
pass
|