diff --git a/README.md b/README.md index 22b7c40..5ebf872 100644 --- a/README.md +++ b/README.md @@ -94,7 +94,7 @@ Tracking progress on key features and tasks for the project. Just finished up the database connection, next steps: -- [ ] Update schema to show files and folders -- [ ] Manually insert examples +- [x] Update schema to show files and folders +- [x] Manually insert examples - [ ] Render them in the UI - [ ] Push and make sure it all works diff --git a/src/server/db/schema.ts b/src/server/db/schema.ts index d5c0a68..52dba32 100644 --- a/src/server/db/schema.ts +++ b/src/server/db/schema.ts @@ -1,12 +1,34 @@ import { int, - bigint, + index, text, - singlestoreTable, + singlestoreTableCreator, + bigint, } from "drizzle-orm/singlestore-core"; -export const users = singlestoreTable("users_table", { - id: bigint("id", { mode: "bigint" }).primaryKey().autoincrement(), - name: text("name"), - age: int("age"), -}); +const createTable = singlestoreTableCreator((name) => `drive_tutorial_${name}`); + +export const files = createTable( + "files", + { + id: bigint("id", { mode: "number", unsigned: true }) + .primaryKey() + .autoincrement(), + name: text("name").notNull(), + size: int("size").notNull(), + parent: bigint("parent", { mode: "number", unsigned: true }), + }, + (table) => [index("parent_index").on(table.parent)], +); + +export const folders = createTable( + "folders", + { + id: bigint("id", { mode: "number", unsigned: true }) + .primaryKey() + .autoincrement(), + name: text("name").notNull(), + parent: bigint("parent", { mode: "number", unsigned: true }), + }, + (table) => [index("parent_index").on(table.parent)], +);