bifroest/app/migrations/versions/0004_passwords_tokens.py
2026-10-27 08:34:17 +01:00

37 lines
1.5 KiB
Python

"""Passwörter und Tokens an Quellen
Revision ID: 0004
Revises: 0003
Erstellt: 2026-10-21 23:05:24.232956
"""
from alembic import op
import sqlalchemy as sa
revision = '0004'
down_revision = '0003'
branch_labels = None
depends_on = None
def upgrade() -> None:
op.add_column('data_sources', sa.Column('secret', sa.String(length=2000), nullable=True))
op.add_column('data_sources', sa.Column('secret_hint', sa.String(length=10), nullable=False, server_default=''))
op.drop_column('data_sources', 'credential_ref')
op.add_column('users', sa.Column('password_hash', sa.String(length=200), nullable=True))
op.add_column('users', sa.Column('must_change_password', sa.Boolean(), nullable=False, server_default=sa.false()))
op.add_column('users', sa.Column('failed_logins', sa.Integer(), nullable=False, server_default='0'))
op.add_column('users', sa.Column('locked_until', sa.DateTime(timezone=True), nullable=True))
op.add_column('users', sa.Column('password_changed', sa.DateTime(timezone=True), nullable=True))
def downgrade() -> None:
op.drop_column('users', 'password_changed')
op.drop_column('users', 'locked_until')
op.drop_column('users', 'failed_logins')
op.drop_column('users', 'must_change_password')
op.drop_column('users', 'password_hash')
op.add_column('data_sources', sa.Column('credential_ref', sa.VARCHAR(length=200), autoincrement=False, nullable=True))
op.drop_column('data_sources', 'secret_hint')
op.drop_column('data_sources', 'secret')