diff --git a/surfsense_backend/alembic/versions/107_add_video_presentations_table.py b/surfsense_backend/alembic/versions/107_add_video_presentations_table.py index e6f928b50..76cd42a23 100644 --- a/surfsense_backend/alembic/versions/107_add_video_presentations_table.py +++ b/surfsense_backend/alembic/versions/107_add_video_presentations_table.py @@ -7,7 +7,7 @@ Revises: 106 from collections.abc import Sequence import sqlalchemy as sa -from sqlalchemy.dialects.postgresql import JSONB +from sqlalchemy.dialects.postgresql import ENUM, JSONB from alembic import op @@ -16,17 +16,24 @@ down_revision: str | None = "106" branch_labels: str | Sequence[str] | None = None depends_on: str | Sequence[str] | None = None -video_presentation_status_enum = sa.Enum( +video_presentation_status_enum = ENUM( "pending", "generating", "ready", "failed", name="video_presentation_status", + create_type=False, ) def upgrade() -> None: - video_presentation_status_enum.create(op.get_bind(), checkfirst=True) + op.execute(""" + DO $$ BEGIN + CREATE TYPE video_presentation_status AS ENUM ('pending', 'generating', 'ready', 'failed'); + EXCEPTION + WHEN duplicate_object THEN null; + END $$; + """) op.create_table( "video_presentations", @@ -82,4 +89,4 @@ def downgrade() -> None: op.drop_index("ix_video_presentations_thread_id", table_name="video_presentations") op.drop_index("ix_video_presentations_status", table_name="video_presentations") op.drop_table("video_presentations") - video_presentation_status_enum.drop(op.get_bind(), checkfirst=True) + op.execute("DROP TYPE IF EXISTS video_presentation_status") diff --git a/surfsense_backend/pyproject.toml b/surfsense_backend/pyproject.toml index 19e32b13a..94b0478a2 100644 --- a/surfsense_backend/pyproject.toml +++ b/surfsense_backend/pyproject.toml @@ -69,6 +69,7 @@ dependencies = [ "pypandoc_binary>=1.16.2", "typst>=0.14.0", "deepagents>=0.4.3", + "daytona>=0.146.0", "langchain-daytona>=0.0.2", "pypandoc>=1.16.2", ] diff --git a/surfsense_backend/uv.lock b/surfsense_backend/uv.lock index 1e9659b9c..a0d0c97be 100644 --- a/surfsense_backend/uv.lock +++ b/surfsense_backend/uv.lock @@ -7860,6 +7860,7 @@ dependencies = [ { name = "chonkie", extra = ["all"] }, { name = "composio" }, { name = "datasets" }, + { name = "daytona" }, { name = "deepagents" }, { name = "discord-py" }, { name = "docling" }, @@ -7940,6 +7941,7 @@ requires-dist = [ { name = "chonkie", extras = ["all"], specifier = ">=1.5.0" }, { name = "composio", specifier = ">=0.10.9" }, { name = "datasets", specifier = ">=2.21.0" }, + { name = "daytona", specifier = ">=0.146.0" }, { name = "deepagents", specifier = ">=0.4.3" }, { name = "discord-py", specifier = ">=2.5.2" }, { name = "docling", specifier = ">=2.15.0" },