"""诊断授权与管理员角色 Revision ID: 89a4ed9647ee Revises: 52be875c14a4 Create Date: 2026-09-12 11:14:22.131144 """ from collections.abc import Sequence import sqlalchemy as sa from alembic import op # revision identifiers, used by Alembic. revision: str = '89a4ed9647ee' down_revision: str | Sequence[str] | None = '52be875c14a4' branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.create_table('diagnostic_grant', sa.Column('id', sa.String(), nullable=False), sa.Column('run_id', sa.String(), nullable=False), sa.Column('domain_id', sa.String(), nullable=False), sa.Column('purpose', sa.String(), nullable=False), sa.Column('token_hash', sa.String(), nullable=False), sa.Column('expires_at', sa.DateTime(timezone=True), nullable=False), sa.Column('used_at', sa.DateTime(timezone=True), nullable=True), sa.Column('created_at', sa.DateTime(timezone=True), server_default=sa.text('now()'), nullable=False), sa.ForeignKeyConstraint(['domain_id'], ['personal_domain.id'], name=op.f('fk_diagnostic_grant_personal_domain'), ondelete='cascade'), sa.ForeignKeyConstraint(['run_id'], ['run.id'], name=op.f('fk_diagnostic_grant_run'), ondelete='cascade'), sa.PrimaryKeyConstraint('id', name=op.f('pk_diagnostic_grant')), sa.UniqueConstraint('token_hash', name=op.f('uq_diagnostic_grant_token_hash')) ) op.create_index(op.f('ix_diagnostic_grant_run_id'), 'diagnostic_grant', ['run_id'], unique=False) op.add_column('user', sa.Column('role', sa.String(), nullable=False, server_default='user')) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_column('user', 'role') op.drop_index(op.f('ix_diagnostic_grant_run_id'), table_name='diagnostic_grant') op.drop_table('diagnostic_grant') # ### end Alembic commands ###