fix: types

This commit is contained in:
Neko Ayaka
2025-02-09 10:55:40 +07:00
parent d7574435e1
commit 9084458886
7 changed files with 40 additions and 21 deletions
@@ -1,8 +1,8 @@
import { sql } from 'drizzle-orm'
import { bigint, pgTable } from 'drizzle-orm/pg-core'
import { pgTable, uuid } from 'drizzle-orm/pg-core'
export const users = pgTable('users', () => {
return {
id: bigint({ mode: 'number' }).primaryKey().unique().default(sql`0`),
id: uuid().primaryKey().unique().default(sql`gen_random_uuid()`),
}
})
@@ -1,4 +1,4 @@
CREATE TABLE "users" (
"id" bigint PRIMARY KEY DEFAULT 0 NOT NULL,
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
CONSTRAINT "users_id_unique" UNIQUE("id")
);
@@ -1,5 +1,5 @@
{
"id": "243b9794-66eb-484e-8359-cc3354344cf6",
"id": "b731cb60-cb64-4cb0-8262-52b1c3fc467e",
"prevId": "00000000-0000-0000-0000-000000000000",
"version": "7",
"dialect": "postgresql",
@@ -10,10 +10,10 @@
"columns": {
"id": {
"name": "id",
"type": "bigint",
"type": "uuid",
"primaryKey": true,
"notNull": true,
"default": "0"
"default": "gen_random_uuid()"
}
},
"indexes": {},
@@ -5,8 +5,8 @@
{
"idx": 0,
"version": "7",
"when": 1739028279439,
"tag": "0000_blue_selene",
"when": 1739072522344,
"tag": "0000_legal_gauntlet",
"breakpoints": true
}
]
@@ -1,27 +1,32 @@
<script setup lang="ts">
import type { DuckDBWasmDrizzleDatabase } from '../../src/drizzle-orm/browser'
import { onMounted, onUnmounted, ref } from 'vue'
import { drizzle } from '../../src/drizzle-orm/browser'
import type { DuckDBWasmDrizzleDatabase } from '../../src/drizzle-orm'
import { onMounted, onUnmounted, ref, watch } from 'vue'
import { drizzle } from '../../src/drizzle-orm'
import * as schema from '../db/schema'
import { users } from '../db/schema'
import migration from '../migrations/0000_blue_selene.sql?raw'
import migration from '../drizzle/0000_legal_gauntlet.sql?raw'
const db = ref<DuckDBWasmDrizzleDatabase<typeof schema>>()
const results = ref<Record<string, unknown>[]>()
const schemaResults = ref<Record<string, unknown>[]>()
const query = ref(`SELECT 1 + 1 AS result`)
onMounted(async () => {
db.value = drizzle('duckdb-wasm://?bundles=worker-url', { schema })
await db.value?.execute(migration)
results.value = await db.value?.execute(query.value)
await db.value.insert(users).values({ id: 1 })
const res = await db.value.select().from(users)
results.value = res
await db.value.insert(users).values({ id: '9449af72-faad-4c97-8a45-69f9f1ca1b05' })
schemaResults.value = await db.value.select().from(users)
})
onUnmounted(() => {
db.value?.$client.then(client => client.close())
})
watch(query, async () => {
results.value = await db.value?.execute(query.value)
})
</script>
<template>
@@ -45,6 +50,25 @@ onUnmounted(() => {
{{ JSON.stringify(results, null, 2) }}
</div>
</div>
<div flex flex-col gap-2>
<h2 text-xl>
Executing
</h2>
<div>
<pre whitespace-pre-wrap p-4 font-mono bg="gray-100 dark:gray-800">
await db.insert(users).values({ id: '9449af72-faad-4c97-8a45-69f9f1ca1b05' })
await db.select().from(users)
</pre>
</div>
</div>
<div flex flex-col gap-2>
<h2 text-xl>
Schema Results
</h2>
<div whitespace-pre-wrap p-4 font-mono>
{{ JSON.stringify(schemaResults, null, 2) }}
</div>
</div>
</div>
</template>
@@ -12,11 +12,6 @@ export class DuckDBWasmDatabase<
TSchema extends Record<string, unknown> = Record<string, never>,
> extends PgDatabase<DuckDBWasmQueryResultHKT, TSchema> {
static override readonly [entityKind]: string = 'DuckDBWasmDatabase'
// ** @internal */
dialect: PgDialect
// ** @internal */
session: DuckDBWasmSession<Promise<DuckDBWasmClient>, TSchema, TablesRelationalConfig>
}
function construct<
@@ -9,5 +9,5 @@ export async function migrate<TSchema extends Record<string, unknown>>(
config: MigrationConfig,
) {
const migrations = readMigrationFiles(config)
await db.dialect.migrate(migrations, db.session as unknown as PgSession, config)
await (db as any).dialect.migrate(migrations, (db as any).session as unknown as PgSession, config)
}