49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
"""make default_port non-nullable and set values
|
|
|
|
Revision ID: 0012_default_port_req
|
|
Revises: 0011_tool_instance_tunnel_fields
|
|
Create Date: 2026-05-20 15:00:00.000000
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = "0012_default_port_req"
|
|
down_revision: Union[str, None] = "0011_tool_instance_tunnel_fields"
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# Set default_port for existing built-in tool types
|
|
op.execute("""
|
|
UPDATE tool_types
|
|
SET default_port = CASE
|
|
WHEN name = 'code-server' THEN 8443
|
|
WHEN name = 'jupyter-notebook' THEN 8888
|
|
WHEN name = 'opencode' THEN 3000
|
|
ELSE 8080
|
|
END
|
|
WHERE default_port IS NULL
|
|
""")
|
|
|
|
# Make default_port non-nullable
|
|
op.alter_column(
|
|
"tool_types",
|
|
"default_port",
|
|
existing_type=sa.Integer(),
|
|
nullable=False,
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.alter_column(
|
|
"tool_types",
|
|
"default_port",
|
|
existing_type=sa.Integer(),
|
|
nullable=True,
|
|
)
|