// Depends on SqlClient
const CreateDatabase = Effect.gen(function* () {
const sql = yield* PgClient.PgClient
// ... check if "main" exists and exit early, otherwise
yield* sql.unsafe("CREATE DATABASE main")
}).pipe(
Effect.provide(
PgClient.layer({
...,
database: "postgres",
}),
),
)
// Depends on SqlClient
const RunMigrations = Effect.gen(function* () {...})
CreateDatabase.pipe(
Effect.andThen(RunMigrations),
Effect.provide([
...,
PgClient.layer({
...,
database: "main",
}),
]),
Effect.runPromise,
)
// Depends on SqlClient
const CreateDatabase = Effect.gen(function* () {
const sql = yield* PgClient.PgClient
// ... check if "main" exists and exit early, otherwise
yield* sql.unsafe("CREATE DATABASE main")
}).pipe(
Effect.provide(
PgClient.layer({
...,
database: "postgres",
}),
),
)
// Depends on SqlClient
const RunMigrations = Effect.gen(function* () {...})
CreateDatabase.pipe(
Effect.andThen(RunMigrations),
Effect.provide([
...,
PgClient.layer({
...,
database: "main",
}),
]),
Effect.runPromise,
)