refac
This commit is contained in:
1 parent
1004dad274
commit
db2b3d7fd8
3 files changed
+46
-31
No files matched your search
@@ -20,31 +20,36 @@ depends_on: Union[str, Sequence[str], None] = None
|
|||||||
|
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
op.create_table(
|
conn = op.get_bind()
|
||||||
'channel_file',
|
inspector = sa.inspect(conn)
|
||||||
sa.Column('id', sa.Text(), primary_key=True),
|
existing_tables = set(inspector.get_table_names())
|
||||||
sa.Column('user_id', sa.Text(), nullable=False),
|
|
||||||
sa.Column(
|
if 'channel_file' not in existing_tables:
|
||||||
'channel_id',
|
op.create_table(
|
||||||
sa.Text(),
|
'channel_file',
|
||||||
sa.ForeignKey('channel.id', ondelete='CASCADE'),
|
sa.Column('id', sa.Text(), primary_key=True),
|
||||||
nullable=False,
|
sa.Column('user_id', sa.Text(), nullable=False),
|
||||||
),
|
sa.Column(
|
||||||
sa.Column(
|
'channel_id',
|
||||||
'file_id',
|
sa.Text(),
|
||||||
sa.Text(),
|
sa.ForeignKey('channel.id', ondelete='CASCADE'),
|
||||||
sa.ForeignKey('file.id', ondelete='CASCADE'),
|
nullable=False,
|
||||||
nullable=False,
|
),
|
||||||
),
|
sa.Column(
|
||||||
sa.Column('created_at', sa.BigInteger(), nullable=False),
|
'file_id',
|
||||||
sa.Column('updated_at', sa.BigInteger(), nullable=False),
|
sa.Text(),
|
||||||
# indexes
|
sa.ForeignKey('file.id', ondelete='CASCADE'),
|
||||||
sa.Index('ix_channel_file_channel_id', 'channel_id'),
|
nullable=False,
|
||||||
sa.Index('ix_channel_file_file_id', 'file_id'),
|
),
|
||||||
sa.Index('ix_channel_file_user_id', 'user_id'),
|
sa.Column('created_at', sa.BigInteger(), nullable=False),
|
||||||
# unique constraints
|
sa.Column('updated_at', sa.BigInteger(), nullable=False),
|
||||||
sa.UniqueConstraint('channel_id', 'file_id', name='uq_channel_file_channel_file'), # prevent duplicate entries
|
# indexes
|
||||||
)
|
sa.Index('ix_channel_file_channel_id', 'channel_id'),
|
||||||
|
sa.Index('ix_channel_file_file_id', 'file_id'),
|
||||||
|
sa.Index('ix_channel_file_user_id', 'user_id'),
|
||||||
|
# unique constraints
|
||||||
|
sa.UniqueConstraint('channel_id', 'file_id', name='uq_channel_file_channel_file'), # prevent duplicate entries
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def downgrade() -> None:
|
def downgrade() -> None:
|
||||||
|
|||||||
@@ -16,10 +16,15 @@ depends_on = None
|
|||||||
|
|
||||||
|
|
||||||
def upgrade():
|
def upgrade():
|
||||||
op.add_column(
|
conn = op.get_bind()
|
||||||
'file',
|
inspector = sa.inspect(conn)
|
||||||
sa.Column('access_control', sa.JSON(), nullable=True),
|
file_cols = {c['name'] for c in inspector.get_columns('file')}
|
||||||
)
|
|
||||||
|
if 'access_control' not in file_cols:
|
||||||
|
op.add_column(
|
||||||
|
'file',
|
||||||
|
sa.Column('access_control', sa.JSON(), nullable=True),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def downgrade():
|
def downgrade():
|
||||||
|
|||||||
@@ -56,6 +56,13 @@ def _flush_batch(conn, table, batch):
|
|||||||
|
|
||||||
|
|
||||||
def upgrade() -> None:
|
def upgrade() -> None:
|
||||||
|
conn = op.get_bind()
|
||||||
|
inspector = sa.inspect(conn)
|
||||||
|
existing_tables = set(inspector.get_table_names())
|
||||||
|
|
||||||
|
if 'chat_message' in existing_tables:
|
||||||
|
return # Already created — skip everything
|
||||||
|
|
||||||
# Step 1: Create table
|
# Step 1: Create table
|
||||||
op.create_table(
|
op.create_table(
|
||||||
'chat_message',
|
'chat_message',
|
||||||
@@ -85,8 +92,6 @@ def upgrade() -> None:
|
|||||||
op.create_index('chat_message_user_created_idx', 'chat_message', ['user_id', 'created_at'])
|
op.create_index('chat_message_user_created_idx', 'chat_message', ['user_id', 'created_at'])
|
||||||
|
|
||||||
# Step 2: Backfill from existing chats
|
# Step 2: Backfill from existing chats
|
||||||
conn = op.get_bind()
|
|
||||||
|
|
||||||
chat_table = sa.table(
|
chat_table = sa.table(
|
||||||
'chat',
|
'chat',
|
||||||
sa.column('id', sa.Text()),
|
sa.column('id', sa.Text()),
|
||||||
|
|||||||
Reference in new issue
Block a user