This commit is contained in:
Timothy Jaeryang Baek committed 2026-05-14 13:45:05 +09:00
1 parent bd9f82d5a6
commit 459b1c3fda
2 files changed
+62 -52

No files matched your search

@@ -19,36 +19,39 @@ depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None: def upgrade() -> None:
op.create_table( conn = op.get_bind()
'chat_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 'chat_file' not in existing_tables:
'chat_id', op.create_table(
sa.Text(), 'chat_file',
sa.ForeignKey('chat.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( 'chat_id',
'file_id', sa.Text(),
sa.Text(), sa.ForeignKey('chat.id', ondelete='CASCADE'),
sa.ForeignKey('file.id', ondelete='CASCADE'), nullable=False,
nullable=False, ),
), sa.Column(
sa.Column('message_id', sa.Text(), nullable=True), 'file_id',
sa.Column('created_at', sa.BigInteger(), nullable=False), sa.Text(),
sa.Column('updated_at', sa.BigInteger(), nullable=False), sa.ForeignKey('file.id', ondelete='CASCADE'),
# indexes nullable=False,
sa.Index('ix_chat_file_chat_id', 'chat_id'), ),
sa.Index('ix_chat_file_file_id', 'file_id'), sa.Column('message_id', sa.Text(), nullable=True),
sa.Index('ix_chat_file_message_id', 'message_id'), sa.Column('created_at', sa.BigInteger(), nullable=False),
sa.Index('ix_chat_file_user_id', 'user_id'), sa.Column('updated_at', sa.BigInteger(), nullable=False),
# unique constraints # indexes
sa.UniqueConstraint('chat_id', 'file_id', name='uq_chat_file_chat_file'), # prevent duplicate entries sa.Index('ix_chat_file_chat_id', 'chat_id'),
) sa.Index('ix_chat_file_file_id', 'file_id'),
pass sa.Index('ix_chat_file_message_id', 'message_id'),
sa.Index('ix_chat_file_user_id', 'user_id'),
# unique constraints
sa.UniqueConstraint('chat_id', 'file_id', name='uq_chat_file_chat_file'), # prevent duplicate entries
)
def downgrade() -> None: def downgrade() -> None:
op.drop_table('chat_file') op.drop_table('chat_file')
pass
@@ -16,30 +16,37 @@ depends_on = None
def upgrade(): def upgrade():
op.create_table( conn = op.get_bind()
'folder', inspector = sa.inspect(conn)
sa.Column('id', sa.Text(), nullable=False), existing_tables = set(inspector.get_table_names())
sa.Column('parent_id', sa.Text(), nullable=True),
sa.Column('user_id', sa.Text(), nullable=False),
sa.Column('name', sa.Text(), nullable=False),
sa.Column('items', sa.JSON(), nullable=True),
sa.Column('meta', sa.JSON(), nullable=True),
sa.Column('is_expanded', sa.Boolean(), default=False, nullable=False),
sa.Column('created_at', sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.Column(
'updated_at',
sa.DateTime(),
nullable=False,
server_default=sa.func.now(),
onupdate=sa.func.now(),
),
sa.PrimaryKeyConstraint('id', 'user_id'),
)
op.add_column( if 'folder' not in existing_tables:
'chat', op.create_table(
sa.Column('folder_id', sa.Text(), nullable=True), 'folder',
) sa.Column('id', sa.Text(), nullable=False),
sa.Column('parent_id', sa.Text(), nullable=True),
sa.Column('user_id', sa.Text(), nullable=False),
sa.Column('name', sa.Text(), nullable=False),
sa.Column('items', sa.JSON(), nullable=True),
sa.Column('meta', sa.JSON(), nullable=True),
sa.Column('is_expanded', sa.Boolean(), default=False, nullable=False),
sa.Column('created_at', sa.DateTime(), server_default=sa.func.now(), nullable=False),
sa.Column(
'updated_at',
sa.DateTime(),
nullable=False,
server_default=sa.func.now(),
onupdate=sa.func.now(),
),
sa.PrimaryKeyConstraint('id', 'user_id'),
)
chat_cols = {c['name'] for c in inspector.get_columns('chat')}
if 'folder_id' not in chat_cols:
op.add_column(
'chat',
sa.Column('folder_id', sa.Text(), nullable=True),
)
def downgrade(): def downgrade():