暫無描述

2604f6962838_add_case_state.py 1.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. """Add case state
  2. Revision ID: 2604f6962838
  3. Revises: db93d5c4c0aa
  4. Create Date: 2023-05-05 11:16:19.997383
  5. """
  6. from alembic import op
  7. import sqlalchemy as sa
  8. from sqlalchemy import text
  9. from app.models.cases import CaseState
  10. from app.alembic.alembic_utils import _table_has_column
  11. # revision identifiers, used by Alembic.
  12. revision = '2604f6962838'
  13. down_revision = 'db93d5c4c0aa'
  14. branch_labels = None
  15. depends_on = None
  16. def upgrade():
  17. # Add the state_id column to the cases table
  18. if not _table_has_column('cases', 'state_id'):
  19. state_id = 1
  20. state = CaseState.query.filter_by(state_id=state_id).first()
  21. if state is None:
  22. state = CaseState()
  23. state.id=state_id
  24. state.state_name='Unspecified'
  25. state.state_description='Unspecified'
  26. state.protected=True
  27. op.bulk_insert(CaseState.__table__, [state.__dict__])
  28. op.add_column(
  29. 'cases',
  30. sa.Column('state_id', sa.Integer, sa.ForeignKey('case_state.state_id'), nullable=True,
  31. server_default=sa.text("1"))
  32. )
  33. # Set the default value for the state_id column
  34. op.execute(text("UPDATE cases SET state_id = 1"))
  35. # Create a foreign key constraint between cases.state_id and case_state.state_id
  36. op.create_foreign_key(
  37. None, 'cases', 'case_state', ['state_id'], ['state_id']
  38. )
  39. def downgrade():
  40. pass