feat(gateways): Introduce gateway model and update agent provisioning templates
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
"""Rename gateways to gateway.
|
||||
|
||||
Revision ID: 4b2a5e2dbb6e
|
||||
Revises: c1c8b3b9f4d1
|
||||
Create Date: 2026-02-04 18:20:00.000000
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import sqlmodel
|
||||
|
||||
revision = "4b2a5e2dbb6e"
|
||||
down_revision = "c1c8b3b9f4d1"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
tables = set(inspector.get_table_names())
|
||||
|
||||
if "gateway_configs" in tables and "gateways" not in tables:
|
||||
op.rename_table("gateway_configs", "gateways")
|
||||
tables.discard("gateway_configs")
|
||||
tables.add("gateways")
|
||||
|
||||
if "boards" in tables:
|
||||
columns = {col["name"] for col in inspector.get_columns("boards")}
|
||||
with op.batch_alter_table("boards") as batch:
|
||||
if "gateway_config_id" in columns and "gateway_id" not in columns:
|
||||
batch.alter_column(
|
||||
"gateway_config_id",
|
||||
new_column_name="gateway_id",
|
||||
existing_type=sa.Uuid(),
|
||||
)
|
||||
elif "gateway_id" not in columns:
|
||||
batch.add_column(sa.Column("gateway_id", sa.Uuid(), nullable=True))
|
||||
for legacy_col in (
|
||||
"gateway_url",
|
||||
"gateway_token",
|
||||
"gateway_main_session_key",
|
||||
"gateway_workspace_root",
|
||||
):
|
||||
if legacy_col in columns:
|
||||
batch.drop_column(legacy_col)
|
||||
|
||||
indexes = {index["name"] for index in inspector.get_indexes("boards")}
|
||||
if "ix_boards_gateway_id" not in indexes:
|
||||
op.create_index(
|
||||
op.f("ix_boards_gateway_id"), "boards", ["gateway_id"], unique=False
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
tables = set(inspector.get_table_names())
|
||||
|
||||
if "boards" in tables:
|
||||
columns = {col["name"] for col in inspector.get_columns("boards")}
|
||||
with op.batch_alter_table("boards") as batch:
|
||||
if "gateway_id" in columns and "gateway_config_id" not in columns:
|
||||
batch.alter_column(
|
||||
"gateway_id",
|
||||
new_column_name="gateway_config_id",
|
||||
existing_type=sa.Uuid(),
|
||||
)
|
||||
if "gateway_url" not in columns:
|
||||
batch.add_column(
|
||||
sa.Column("gateway_url", sqlmodel.sql.sqltypes.AutoString(), nullable=True)
|
||||
)
|
||||
if "gateway_token" not in columns:
|
||||
batch.add_column(
|
||||
sa.Column("gateway_token", sqlmodel.sql.sqltypes.AutoString(), nullable=True)
|
||||
)
|
||||
if "gateway_main_session_key" not in columns:
|
||||
batch.add_column(
|
||||
sa.Column(
|
||||
"gateway_main_session_key",
|
||||
sqlmodel.sql.sqltypes.AutoString(),
|
||||
nullable=True,
|
||||
)
|
||||
)
|
||||
if "gateway_workspace_root" not in columns:
|
||||
batch.add_column(
|
||||
sa.Column(
|
||||
"gateway_workspace_root",
|
||||
sqlmodel.sql.sqltypes.AutoString(),
|
||||
nullable=True,
|
||||
)
|
||||
)
|
||||
|
||||
if "gateways" in tables and "gateway_configs" not in tables:
|
||||
op.rename_table("gateways", "gateway_configs")
|
||||
Reference in New Issue
Block a user