"""upgrade to 0.4.0 NOTICE: REVISIONS BEFORE 0.3.1 ARE LOST FOR GOOD get over it and move on: the recommended way to upgrade is via python3 -m freak -U Revision ID: 29a8d663c7ce Revises: Create Date: 2025-06-17 21:55:16.145111 """ from typing import Sequence, Union from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic. revision: str = '29a8d663c7ce' down_revision: Union[str, None] = '7122c8715ff9' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: """Upgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.create_table('freak_user_block', sa.Column('actor_id', sa.BigInteger(), nullable=False), sa.Column('target_id', sa.BigInteger(), nullable=False), sa.ForeignKeyConstraint(['actor_id'], ['freak_user.id'], ), sa.ForeignKeyConstraint(['target_id'], ['freak_user.id'], ), sa.PrimaryKeyConstraint('actor_id', 'target_id') ) op.create_table('freak_user_strike', sa.Column('id', sa.LargeBinary(length=16), nullable=False), sa.Column('user_id', sa.BigInteger(), nullable=False), sa.Column('target_type', sa.SmallInteger(), nullable=False), sa.Column('target_id', sa.BigInteger(), nullable=False), sa.Column('target_content', sa.String(length=4096), nullable=True), sa.Column('reason_code', sa.SmallInteger(), nullable=False), sa.Column('issued_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True), sa.Column('issued_by_id', sa.BigInteger(), nullable=True), sa.ForeignKeyConstraint(['issued_by_id'], ['freak_user.id'], ), sa.ForeignKeyConstraint(['user_id'], ['freak_user.id'], ondelete='cascade'), sa.PrimaryKeyConstraint('id') ) op.create_table('freak_member', sa.Column('id', sa.LargeBinary(length=16), nullable=False), sa.Column('user_id', sa.BigInteger(), nullable=True), sa.Column('guild_id', sa.BigInteger(), nullable=True), sa.Column('is_approved', sa.Boolean(), server_default=sa.text('false'), nullable=False), sa.Column('is_subscribed', sa.Boolean(), server_default=sa.text('false'), nullable=False), sa.Column('is_moderator', sa.Boolean(), server_default=sa.text('false'), nullable=False), sa.Column('banned_at', sa.DateTime(), nullable=True), sa.Column('banned_by_id', sa.BigInteger(), nullable=True), sa.Column('banned_reason', sa.SmallInteger(), server_default=sa.text('0'), nullable=True), sa.Column('banned_until', sa.DateTime(), nullable=True), sa.Column('banned_message', sa.String(length=256), nullable=True), sa.ForeignKeyConstraint(['banned_by_id'], ['freak_user.id'], name='user_banner_id'), sa.ForeignKeyConstraint(['guild_id'], ['freak_topic.id'], ), sa.ForeignKeyConstraint(['user_id'], ['freak_user.id'], ), sa.PrimaryKeyConstraint('id'), sa.UniqueConstraint('user_id', 'guild_id', name='member_user_topic') ) op.add_column('freak_topic', sa.Column('is_restricted', sa.Boolean(), server_default=sa.text('false'), nullable=False)) op.add_column('freak_topic', sa.Column('is_public', sa.Boolean(), server_default=sa.text('true'), nullable=False)) op.drop_column('freak_topic', 'privacy') op.add_column('freak_user', sa.Column('pronouns', sa.Integer(), server_default=sa.text('0'), nullable=False)) op.add_column('freak_user', sa.Column('biography', sa.String(length=1024), nullable=True)) op.add_column('freak_user', sa.Column('is_approved', sa.Boolean(), server_default=sa.text('false'), nullable=False)) op.add_column('freak_user', sa.Column('invited_by_id', sa.BigInteger(), nullable=True)) op.create_foreign_key('user_inviter_id', 'freak_user', 'freak_user', ['invited_by_id'], ['id']) # ### end Alembic commands ### def downgrade() -> None: """Downgrade schema.""" # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint('user_inviter_id', 'freak_user', type_='foreignkey') op.drop_column('freak_user', 'invited_by_id') op.drop_column('freak_user', 'is_approved') op.drop_column('freak_user', 'biography') op.drop_column('freak_user', 'pronouns') op.add_column('freak_topic', sa.Column('privacy', sa.SMALLINT(), server_default=sa.text('0'), autoincrement=False, nullable=True)) op.drop_column('freak_topic', 'is_public') op.drop_column('freak_topic', 'is_restricted') op.drop_table('freak_member') op.drop_table('freak_user_strike') op.drop_table('freak_user_block') # ### end Alembic commands ###