Coverage for slidge/db/alembic/versions/86d980dbb426_add_displayed_by_user_column_to_.py: 87%

15 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-18 04:30 +0000

1"""Add 'displayed_by_user' column to ArchivedMessage, for xmpp.MARK_ALL_MESSAGES 

2 

3Revision ID: 86d980dbb426 

4Revises: 259a1b71eadf 

5Create Date: 2025-12-02 20:47:51.919688 

6 

7""" 

8 

9from collections.abc import Sequence 

10 

11import sqlalchemy as sa 

12from alembic import op 

13 

14# revision identifiers, used by Alembic. 

15revision: str = "86d980dbb426" 

16down_revision: str | None = "259a1b71eadf" 

17branch_labels: str | Sequence[str] | None = None 

18depends_on: str | Sequence[str] | None = None 

19 

20 

21def upgrade() -> None: 

22 with op.batch_alter_table("mam", schema=None) as batch_op: 

23 batch_op.add_column(sa.Column("displayed_by_user", sa.Boolean())) 

24 # Set all existing rows to displayed, to avoid sending large busts of read markers 

25 # for messages archived before the introduction of the new column. 

26 mam = sa.table("mam", sa.column("displayed_by_user", sa.Boolean())) 

27 op.execute(mam.update().values(displayed_by_user=True)) 

28 

29 

30def downgrade() -> None: 

31 with op.batch_alter_table("mam", schema=None) as batch_op: 

32 batch_op.drop_column("displayed_by_user")