Julius Marmingerewrite25d20ab8 months agoHistory
44 lines · 1.2 KB · TypeScript
RawDownload
import * as SqlClient from "effect/unstable/sql/SqlClient";import * as Effect from "effect/Effect"; export default Effect.gen(function* () {  const sql = yield* SqlClient.SqlClient;   yield* sql`    CREATE TABLE IF NOT EXISTS orchestration_events (      sequence INTEGER PRIMARY KEY AUTOINCREMENT,      event_id TEXT NOT NULL UNIQUE,      aggregate_kind TEXT NOT NULL,      stream_id TEXT NOT NULL,      stream_version INTEGER NOT NULL,      event_type TEXT NOT NULL,      occurred_at TEXT NOT NULL,      command_id TEXT,      causation_event_id TEXT,      correlation_id TEXT,      actor_kind TEXT NOT NULL,      payload_json TEXT NOT NULL,      metadata_json TEXT NOT NULL    )  `;   yield* sql`    CREATE UNIQUE INDEX IF NOT EXISTS idx_orch_events_stream_version    ON orchestration_events(aggregate_kind, stream_id, stream_version)  `;   yield* sql`    CREATE INDEX IF NOT EXISTS idx_orch_events_stream_sequence    ON orchestration_events(aggregate_kind, stream_id, sequence)  `;   yield* sql`    CREATE INDEX IF NOT EXISTS idx_orch_events_command_id    ON orchestration_events(command_id)  `;   yield* sql`    CREATE INDEX IF NOT EXISTS idx_orch_events_correlation_id    ON orchestration_events(correlation_id)  `;});