38 lines · 1.2 KB · TypeScript
RawDownload
import { column, idColumn, schema, table } from "../../src/schema"; export const v1 = schema({  version: "1.0.0",  tables: {    users: table("users", {      id: idColumn("id", "varchar(255)").defaultTo$("auto"),      name: column("name", "string"),    }),    messages: table("messages", {      id: idColumn("id", "varchar(255)").defaultTo$("auto"),      user: column("user", "varchar(255)"),      content: column("content", "string").defaultTo("default content."),      parent: column("parent", "varchar(255)").nullable(),      image: column("image", "binary").nullable(),       // for testing one-to-one      mentionId: column("mention_id", "varchar(255)").nullable().unique(),    }),    posts: table("posts", {      id: idColumn("id", "uuid"),      title: column("title", "string"),      metadata: column("metadata", "json"),    }),  },  relations: {    users: ({ many }) => ({      messages: many("messages"),    }),    messages: ({ one }) => ({      author: one("users", ["user", "id"]).foreignKey(),      mentioning: one("messages", ["mentionId", "id"])        .foreignKey()        .imply("mentionedBy"),      mentionedBy: one("messages"),    }),  },});