20251229_0046_c1148f55dcd9_add_settings_table.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. """add_settings_table
  2. Revision ID: c1148f55dcd9
  3. Revises: 277d91f6540f
  4. Create Date: 2025-12-29 00:46:10.442689+00:00
  5. """
  6. from typing import Sequence, Union
  7. from alembic import op
  8. import sqlalchemy as sa
  9. from sqlalchemy.dialects import postgresql
  10. # revision identifiers, used by Alembic.
  11. revision: str = 'c1148f55dcd9'
  12. down_revision: Union[str, None] = '277d91f6540f'
  13. branch_labels: Union[str, Sequence[str], None] = None
  14. depends_on: Union[str, Sequence[str], None] = None
  15. def upgrade() -> None:
  16. # Create settings table
  17. op.create_table(
  18. 'settings',
  19. sa.Column('id', sa.Integer(), nullable=False),
  20. sa.Column('key', sa.String(length=255), nullable=False),
  21. sa.Column('value', postgresql.JSON(astext_type=sa.Text()), nullable=False),
  22. sa.Column('updated_at', sa.DateTime(), nullable=True),
  23. sa.PrimaryKeyConstraint('id'),
  24. sa.UniqueConstraint('key')
  25. )
  26. # Insert default auto_registration setting (enabled by default)
  27. op.execute(
  28. """
  29. INSERT INTO settings (key, value, updated_at)
  30. VALUES ('auto_registration', '{"enabled": true}', NOW())
  31. """
  32. )
  33. def downgrade() -> None:
  34. op.drop_table('settings')