How to Query Multiple SQLite Databases with Effect and Drizzle

import { Effect, Config, Layer } from "effect";
import { person } from "./drizzle/schema";

import * as SqliteDrizzle from "@effect/sql-drizzle/Sqlite";
import { SqliteClient } from "@effect/sql-sqlite-bun";

const SqlLive = SqliteClient.layerConfig({
  filename: Config.string("DATABASE_URL"),
});

const DrizzleLive = SqliteDrizzle.layer.pipe(Layer.provide(SqlLive));

export const DatabaseLive = Layer.mergeAll(SqlLive, DrizzleLive);

const program = Effect.gen(function* (_) {
  const db = yield* SqliteDrizzle.SqliteDrizzle;
  const row = yield* db.select().from(person);
  console.log(row);
});

Now i want to also query another sqlite3 database Config.string("DATABASE1_URL"),
so i need to define another Service tag.
Looks like
declare const make: (
  options: SqliteClientConfig
) => Effect.Effect<SqliteClient, never, Scope.Scope | Reactivity.Reactivity>

won't be capable, as the Service Tag is baked in.
How would i do this?

thanks, Frank
Was this page helpful?