chat restore
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2026-02-09 20:07:46 +09:00
parent 062b782fb7
commit 4e2c8981c2
8 changed files with 485 additions and 56 deletions

View File

@@ -0,0 +1,200 @@
"""
Revision ID: beb47ddbfc33
Revises: 008
Create Date: 2026-02-08 21:21:25.254747
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import postgresql
# revision identifiers, used by Alembic.
revision = 'beb47ddbfc33'
down_revision = '008'
branch_labels = None
depends_on = None
def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('accounts', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True)
op.alter_column('accounts', 'is_active',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('true'))
op.drop_index('ix_accounts_owner_id', table_name='accounts')
op.drop_constraint('accounts_owner_id_fkey', 'accounts', type_='foreignkey')
op.create_foreign_key(None, 'accounts', 'users', ['owner_id'], ['id'])
op.alter_column('banned_users', 'banned_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text('now()'))
op.alter_column('banned_users', 'is_active',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('true'))
op.drop_constraint('banned_users_user_id_fkey', 'banned_users', type_='foreignkey')
op.drop_constraint('banned_users_banned_by_fkey', 'banned_users', type_='foreignkey')
op.create_foreign_key(None, 'banned_users', 'users', ['banned_by'], ['id'])
op.create_foreign_key(None, 'banned_users', 'users', ['user_id'], ['id'])
op.alter_column('chat_messages', 'forwarded_message_ids',
existing_type=postgresql.JSONB(astext_type=sa.Text()),
type_=sa.JSON(),
existing_nullable=True)
op.alter_column('chat_messages', 'is_deleted',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('chat_messages', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text('now()'))
op.drop_index('ix_chat_messages_user_id', table_name='chat_messages')
op.drop_constraint('chat_messages_user_id_fkey', 'chat_messages', type_='foreignkey')
op.drop_constraint('chat_messages_deleted_by_fkey', 'chat_messages', type_='foreignkey')
op.create_foreign_key(None, 'chat_messages', 'users', ['user_id'], ['id'])
op.create_foreign_key(None, 'chat_messages', 'users', ['deleted_by'], ['id'])
op.alter_column('chat_settings', 'global_ban',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('chat_settings', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text('now()'))
op.alter_column('chat_settings', 'updated_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True,
existing_server_default=sa.text('now()'))
op.alter_column('p2p_messages', 'is_read',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('p2p_messages', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True)
op.drop_constraint('fk_participations_account_id', 'participations', type_='foreignkey')
op.create_foreign_key(None, 'participations', 'accounts', ['account_id'], ['id'])
op.alter_column('users', 'is_registered',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.drop_index('ix_users_verification_code', table_name='users')
op.create_unique_constraint(None, 'users', ['verification_code'])
op.alter_column('winner_verifications', 'is_verified',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('winner_verifications', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=True)
op.drop_index('ix_winner_verifications_token', table_name='winner_verifications')
op.drop_index('ix_winner_verifications_winner_id', table_name='winner_verifications')
op.create_unique_constraint(None, 'winner_verifications', ['verification_token'])
op.create_unique_constraint(None, 'winner_verifications', ['winner_id'])
op.drop_constraint('winner_verifications_winner_id_fkey', 'winner_verifications', type_='foreignkey')
op.create_foreign_key(None, 'winner_verifications', 'winners', ['winner_id'], ['id'])
op.alter_column('winners', 'is_notified',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
op.alter_column('winners', 'is_claimed',
existing_type=sa.BOOLEAN(),
nullable=True,
existing_server_default=sa.text('false'))
# ### end Alembic commands ###
def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.alter_column('winners', 'is_claimed',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.alter_column('winners', 'is_notified',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.drop_constraint(None, 'winner_verifications', type_='foreignkey')
op.create_foreign_key('winner_verifications_winner_id_fkey', 'winner_verifications', 'winners', ['winner_id'], ['id'], ondelete='CASCADE')
op.drop_constraint(None, 'winner_verifications', type_='unique')
op.drop_constraint(None, 'winner_verifications', type_='unique')
op.create_index('ix_winner_verifications_winner_id', 'winner_verifications', ['winner_id'], unique=True)
op.create_index('ix_winner_verifications_token', 'winner_verifications', ['verification_token'], unique=True)
op.alter_column('winner_verifications', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False)
op.alter_column('winner_verifications', 'is_verified',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.drop_constraint(None, 'users', type_='unique')
op.create_index('ix_users_verification_code', 'users', ['verification_code'], unique=True)
op.alter_column('users', 'is_registered',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.drop_constraint(None, 'participations', type_='foreignkey')
op.create_foreign_key('fk_participations_account_id', 'participations', 'accounts', ['account_id'], ['id'], ondelete='SET NULL')
op.alter_column('p2p_messages', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False)
op.alter_column('p2p_messages', 'is_read',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.alter_column('chat_settings', 'updated_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False,
existing_server_default=sa.text('now()'))
op.alter_column('chat_settings', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False,
existing_server_default=sa.text('now()'))
op.alter_column('chat_settings', 'global_ban',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.drop_constraint(None, 'chat_messages', type_='foreignkey')
op.drop_constraint(None, 'chat_messages', type_='foreignkey')
op.create_foreign_key('chat_messages_deleted_by_fkey', 'chat_messages', 'users', ['deleted_by'], ['id'], ondelete='SET NULL')
op.create_foreign_key('chat_messages_user_id_fkey', 'chat_messages', 'users', ['user_id'], ['id'], ondelete='CASCADE')
op.create_index('ix_chat_messages_user_id', 'chat_messages', ['user_id'], unique=False)
op.alter_column('chat_messages', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False,
existing_server_default=sa.text('now()'))
op.alter_column('chat_messages', 'is_deleted',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('false'))
op.alter_column('chat_messages', 'forwarded_message_ids',
existing_type=sa.JSON(),
type_=postgresql.JSONB(astext_type=sa.Text()),
existing_nullable=True)
op.drop_constraint(None, 'banned_users', type_='foreignkey')
op.drop_constraint(None, 'banned_users', type_='foreignkey')
op.create_foreign_key('banned_users_banned_by_fkey', 'banned_users', 'users', ['banned_by'], ['id'], ondelete='SET NULL')
op.create_foreign_key('banned_users_user_id_fkey', 'banned_users', 'users', ['user_id'], ['id'], ondelete='CASCADE')
op.alter_column('banned_users', 'is_active',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('true'))
op.alter_column('banned_users', 'banned_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False,
existing_server_default=sa.text('now()'))
op.drop_constraint(None, 'accounts', type_='foreignkey')
op.create_foreign_key('accounts_owner_id_fkey', 'accounts', 'users', ['owner_id'], ['id'], ondelete='CASCADE')
op.create_index('ix_accounts_owner_id', 'accounts', ['owner_id'], unique=False)
op.alter_column('accounts', 'is_active',
existing_type=sa.BOOLEAN(),
nullable=False,
existing_server_default=sa.text('true'))
op.alter_column('accounts', 'created_at',
existing_type=postgresql.TIMESTAMP(timezone=True),
nullable=False)
# ### end Alembic commands ###