20260730_07_add_feedback_username.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. """add feedback username snapshot
  2. Revision ID: 20260730_07
  3. Revises: 20260730_06
  4. Create Date: 2026-07-30
  5. """
  6. from __future__ import annotations
  7. from collections.abc import Sequence
  8. import sqlalchemy as sa
  9. from alembic import op
  10. revision: str = "20260730_07"
  11. down_revision: str | None = "20260730_06"
  12. branch_labels: str | Sequence[str] | None = None
  13. depends_on: str | Sequence[str] | None = None
  14. def upgrade() -> None:
  15. op.add_column(
  16. "demand_feedback",
  17. sa.Column(
  18. "feedback_username_snapshot",
  19. sa.String(length=64),
  20. nullable=False,
  21. server_default="",
  22. comment="反馈人登录账号快照",
  23. ),
  24. )
  25. op.execute(
  26. sa.text(
  27. """
  28. UPDATE demand_feedback AS feedback
  29. JOIN auth_user AS user_account
  30. ON user_account.id = feedback.feedback_user_id
  31. SET feedback.feedback_username_snapshot = user_account.username
  32. WHERE feedback.feedback_username_snapshot = ''
  33. """
  34. )
  35. )
  36. op.alter_column(
  37. "demand_feedback",
  38. "feedback_username_snapshot",
  39. existing_type=sa.String(length=64),
  40. server_default=None,
  41. )
  42. def downgrade() -> None:
  43. op.drop_column("demand_feedback", "feedback_username_snapshot")