| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- """Add case state
- Revision ID: 2604f6962838
- Revises: db93d5c4c0aa
- Create Date: 2023-05-05 11:16:19.997383
- """
- from alembic import op
- import sqlalchemy as sa
- from sqlalchemy import text
- from app.models.cases import CaseState
- from app.alembic.alembic_utils import _table_has_column
- # revision identifiers, used by Alembic.
- revision = '2604f6962838'
- down_revision = 'db93d5c4c0aa'
- branch_labels = None
- depends_on = None
- def upgrade():
- # Add the state_id column to the cases table
- if not _table_has_column('cases', 'state_id'):
- state_id = 1
- state = CaseState.query.filter_by(state_id=state_id).first()
- if state is None:
- state = CaseState()
- state.id=state_id
- state.state_name='Unspecified'
- state.state_description='Unspecified'
- state.protected=True
- op.bulk_insert(CaseState.__table__, [state.__dict__])
- op.add_column(
- 'cases',
- sa.Column('state_id', sa.Integer, sa.ForeignKey('case_state.state_id'), nullable=True,
- server_default=sa.text("1"))
- )
- # Set the default value for the state_id column
- op.execute(text("UPDATE cases SET state_id = 1"))
- # Create a foreign key constraint between cases.state_id and case_state.state_id
- op.create_foreign_key(
- None, 'cases', 'case_state', ['state_id'], ['state_id']
- )
- def downgrade():
- pass
|