"""connector_connections — partial unique index for workspace-scoped connections.

Workspace-level connections have project_id IS NULL. The existing unique constraint
(project_id, name) does not enforce uniqueness for NULL project_id rows in PostgreSQL
(NULL != NULL), so a partial unique index is required to enforce
(workspace_id, name) WHERE project_id IS NULL.

Revision ID: 055
Revises: 054
"""
from alembic import op

revision = "055"
down_revision = "054"
branch_labels = None
depends_on = None


def upgrade() -> None:
    op.execute(
        """
        CREATE UNIQUE INDEX uq_connector_connections_workspace_name
        ON connector_connections (workspace_id, name)
        WHERE project_id IS NULL
        """
    )


def downgrade() -> None:
    op.execute("DROP INDEX IF EXISTS uq_connector_connections_workspace_name")
