1import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/sql/SqlClient";
3
4// Schema setup composed by migration 055.
5export default Effect.gen(function* () {
6 const sql = yield* SqlClient.SqlClient;
7
8 yield* sql`
9 CREATE TABLE orchestration_v2_projection_provider_session_bindings (
10 provider_session_id TEXT NOT NULL,
11 thread_id TEXT NOT NULL,
12 PRIMARY KEY (provider_session_id, thread_id)
13 )
14 `;
15 yield* sql`
16 INSERT OR IGNORE INTO orchestration_v2_projection_provider_session_bindings (
17 provider_session_id,
18 thread_id
19 )
20 SELECT provider_session_id, thread_id
21 FROM orchestration_v2_projection_provider_sessions
22 WHERE thread_id IS NOT NULL
23 `;
24 yield* sql`
25 CREATE INDEX orchestration_v2_projection_provider_session_bindings_thread_idx
26 ON orchestration_v2_projection_provider_session_bindings(thread_id)
27 `;
28});