refactor(v2): use effect sqlite session storage
This commit is contained in:
parent
dc55ece384
commit
dcbd244dd7
7 changed files with 183 additions and 124 deletions
|
|
@ -1,7 +1,8 @@
|
|||
/* oxlint-disable */
|
||||
import type { MigrationConfig } from "drizzle-orm/migrator"
|
||||
import type { MigrationConfig, MigrationFromJournalConfig, MigrationsJournal } from "drizzle-orm/migrator"
|
||||
import { readMigrationFiles } from "drizzle-orm/migrator"
|
||||
import type { AnyRelations } from "drizzle-orm/relations"
|
||||
import crypto from "node:crypto"
|
||||
import { migrate as coreMigrate } from "../sqlite-core/effect/session"
|
||||
import type { EffectSQLiteDatabase } from "./driver"
|
||||
|
||||
|
|
@ -12,3 +13,21 @@ export function migrate<TRelations extends AnyRelations>(
|
|||
const migrations = readMigrationFiles(config)
|
||||
return coreMigrate(migrations, db.session, config)
|
||||
}
|
||||
|
||||
export function migrateFromJournal<TRelations extends AnyRelations>(
|
||||
db: EffectSQLiteDatabase<TRelations>,
|
||||
journal: MigrationsJournal,
|
||||
config: Omit<MigrationFromJournalConfig, "migrationsJournal"> = {},
|
||||
) {
|
||||
return coreMigrate(
|
||||
journal.map((migration) => ({
|
||||
sql: migration.sql.split("--> statement-breakpoint"),
|
||||
bps: true,
|
||||
folderMillis: migration.timestamp,
|
||||
hash: crypto.createHash("sha256").update(migration.sql).digest("hex"),
|
||||
name: migration.name,
|
||||
})),
|
||||
db.session,
|
||||
{ migrationsFolder: "", migrationsTable: config.migrationsTable },
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
export { EffectLogger } from "drizzle-orm/effect-core"
|
||||
export * from "./effect-sqlite/driver"
|
||||
export * from "./effect-sqlite/session"
|
||||
export { migrate } from "./effect-sqlite/migrator"
|
||||
export { migrate, migrateFromJournal } from "./effect-sqlite/migrator"
|
||||
|
||||
export * as EffectDrizzleSqlite from "."
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue