"""vessels — daily VesselAPI snapshots for DVR as-of Revision ID: 009_vessels Revises: 008_summary_kind Create Date: 2026-08-29 """ from alembic import op revision = "009_vessels" down_revision = "008_summary_kind" branch_labels = None depends_on = None def upgrade() -> None: op.execute( """ CREATE TABLE IF NOT EXISTS vessels ( mmsi TEXT NOT NULL, poll_at TIMESTAMPTZ NOT NULL, lat DOUBLE PRECISION NOT NULL, lon DOUBLE PRECISION NOT NULL, heading DOUBLE PRECISION, speed DOUBLE PRECISION, label TEXT, extra JSONB, PRIMARY KEY (mmsi, poll_at) ) """ ) op.execute( "CREATE INDEX IF NOT EXISTS ix_vessels_poll_at ON vessels (poll_at DESC)" ) op.execute( "CREATE INDEX IF NOT EXISTS ix_vessels_bbox ON vessels (lon, lat)" ) def downgrade() -> None: op.execute("DROP TABLE IF EXISTS vessels")