1import { DB_URL, DB_TOKEN } from "astro:env/server"; 2 3import { createDatabase } from "db0"; 4import { createStorage } from "unstorage"; 5import dbDriver from "unstorage/drivers/db0"; 6import libSqlConnector from "db0/connectors/libsql/web"; 7import { drizzle } from "db0/integrations/drizzle"; 8import { sqliteTable, int, text } from "drizzle-orm/sqlite-core"; 9 10export const database = createDatabase( 11 libSqlConnector({ 12 url: DB_URL, 13 ...import.meta.env.PROD && { authToken: DB_TOKEN }, 14 }) 15); 16 17export const driver = drizzle(database); 18 19export const storage = createStorage({ 20 driver: dbDriver({ 21 database, 22 tableName: "fanfic_archive", 23 }), 24}); 25 26export const usersTable = sqliteTable("users_table", { 27 id: int().primaryKey({ autoIncrement: true }), 28 handle: text().notNull(), 29 userDid: text().notNull(), 30}); 31 32export const worksTable = sqliteTable("works_table", { 33 id: int().primaryKey({ autoIncrement: true }), 34 author: text(), 35 // recordkey 36 title: text(), 37 body: text(), 38}); 39 40export const tagsTable = sqliteTable("tags_table", { 41 id: int().primaryKey({ autoIncrement: true }), 42 label: text(), 43 // rkey 44 class: text(), 45 // classrkey? 46});