mirror of
https://github.com/MODSetter/SurfSense.git
synced 2025-09-02 18:49:09 +00:00
54 lines
No EOL
1.5 KiB
Python
54 lines
No EOL
1.5 KiB
Python
"""Add LINKUP_API to SearchSourceConnectorType enum
|
|
|
|
Revision ID: 4
|
|
Revises: 3
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = '4'
|
|
down_revision: Union[str, None] = '3'
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
ENUM_NAME = 'searchsourceconnectortype'
|
|
NEW_VALUE = 'LINKUP_API'
|
|
|
|
op.execute(f"""
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_enum
|
|
WHERE enumlabel = '{NEW_VALUE}'
|
|
AND enumtypid = (
|
|
SELECT oid FROM pg_type WHERE typname = '{ENUM_NAME}'
|
|
)
|
|
) THEN
|
|
ALTER TYPE {ENUM_NAME} ADD VALUE '{NEW_VALUE}';
|
|
END IF;
|
|
END$$;
|
|
""")
|
|
|
|
|
|
|
|
def downgrade() -> None:
|
|
# ### commands auto generated by Alembic - please adjust! ###
|
|
|
|
# Downgrading removal of an enum value requires recreating the type
|
|
op.execute("ALTER TYPE searchsourceconnectortype RENAME TO searchsourceconnectortype_old")
|
|
op.execute("CREATE TYPE searchsourceconnectortype AS ENUM('SERPER_API', 'TAVILY_API', 'SLACK_CONNECTOR', 'NOTION_CONNECTOR', 'GITHUB_CONNECTOR', 'LINEAR_CONNECTOR')")
|
|
op.execute((
|
|
"ALTER TABLE search_source_connectors ALTER COLUMN connector_type TYPE searchsourceconnectortype USING "
|
|
"connector_type::text::searchsourceconnectortype"
|
|
))
|
|
op.execute("DROP TYPE searchsourceconnectortype_old")
|
|
|
|
pass
|
|
# ### end Alembic commands ### |