From 93b90dc1c4f7a38f0540c45531349ca2998b31b6 Mon Sep 17 00:00:00 2001 From: ItzCrazyKns Date: Sat, 29 Jun 2024 11:08:11 +0530 Subject: [PATCH] feat(db): create schema & config files --- drizzle.config.ts | 10 ++++++++++ src/db/index.ts | 10 ++++++++++ src/db/schema.ts | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 drizzle.config.ts create mode 100644 src/db/index.ts create mode 100644 src/db/schema.ts diff --git a/drizzle.config.ts b/drizzle.config.ts new file mode 100644 index 0000000..9ac3ec5 --- /dev/null +++ b/drizzle.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'drizzle-kit'; + +export default defineConfig({ + dialect: 'sqlite', + schema: './src/db/schema.ts', + out: './drizzle', + dbCredentials: { + url: './data/db.sqlite', + }, +}); diff --git a/src/db/index.ts b/src/db/index.ts new file mode 100644 index 0000000..b431b47 --- /dev/null +++ b/src/db/index.ts @@ -0,0 +1,10 @@ +import { drizzle } from 'drizzle-orm/better-sqlite3'; +import Database from 'better-sqlite3'; +import * as schema from './schema'; + +const sqlite = new Database('data/db.sqlite'); +const db = drizzle(sqlite, { + schema: schema, +}); + +export default db; diff --git a/src/db/schema.ts b/src/db/schema.ts new file mode 100644 index 0000000..9eefa55 --- /dev/null +++ b/src/db/schema.ts @@ -0,0 +1,19 @@ +import { text, integer, sqliteTable } from 'drizzle-orm/sqlite-core'; + +export const messages = sqliteTable('messages', { + id: integer('id').primaryKey(), + content: text('content').notNull(), + chatId: text('chatId').notNull(), + messageId: text('messageId').notNull(), + role: text('type', { enum: ['assistant', 'user'] }), + metadata: text('metadata', { + mode: 'json', + }), +}); + +export const chats = sqliteTable('chats', { + id: text('id').primaryKey(), + title: text('title').notNull(), + createdAt: text('createdAt').notNull(), + focusMode: text('focusMode').notNull(), +});