diff --git a/src/db/index.js b/src/db/index.js index 0fffc79..17d3b39 100644 --- a/src/db/index.js +++ b/src/db/index.js @@ -21,14 +21,14 @@ export const initDb = async () => { schema, }); - await migrate(db, { - migrationsFolder: "./src/db/migrations", - }) - .then(() => { - Logger.info("INIT", "Migrated database"); - }) - .catch((error) => { - Logger.error("INIT", `Failed to migrate database ${String(error)}`); - throw new Error(`Failed to migrate database ${String(error)}`); - }); + // await migrate(db, { + // migrationsFolder: "./src/db/migrations", + // }) + // .then(() => { + // Logger.info("INIT", "Migrated database"); + // }) + // .catch((error) => { + // Logger.error("INIT", `Failed to migrate database ${String(error)}`); + // throw new Error(`Failed to migrate database ${String(error)}`); + // }); }; diff --git a/src/db/migrations/relations.ts b/src/db/migrations/relations.ts deleted file mode 100644 index 5849b96..0000000 --- a/src/db/migrations/relations.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { relations } from "drizzle-orm/relations"; -import { sites, signups, users, sessions, articles } from "./schema"; - -export const signupsRelations = relations(signups, ({one}) => ({ - site: one(sites, { - fields: [signups.site_id], - references: [sites.id] - }), -})); - -export const sitesRelations = relations(sites, ({one, many}) => ({ - signups: many(signups), - user: one(users, { - fields: [sites.user_id], - references: [users.id] - }), - articles: many(articles), -})); - -export const usersRelations = relations(users, ({many}) => ({ - sites: many(sites), - sessions: many(sessions), -})); - -export const sessionsRelations = relations(sessions, ({one}) => ({ - user: one(users, { - fields: [sessions.user_id], - references: [users.id] - }), -})); - -export const articlesRelations = relations(articles, ({one}) => ({ - site: one(sites, { - fields: [articles.site_id], - references: [sites.id] - }), -})); \ No newline at end of file diff --git a/src/db/migrations/schema.ts b/src/db/migrations/schema.ts deleted file mode 100644 index 9bfa17d..0000000 --- a/src/db/migrations/schema.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { pgTable, foreignKey, pgEnum, text, uuid, timestamp, integer, varchar, boolean, jsonb } from "drizzle-orm/pg-core" - import { sql } from "drizzle-orm" - -export const subscription_tier = pgEnum("subscription_tier", ['free', 'basic', 'pro', 'enterprise']) - - -export const signups = pgTable("signups", { - email: text("email").notNull(), - site_id: uuid("site_id").notNull().references(() => sites.id), - created_at: timestamp("created_at", { mode: 'string' }).defaultNow().notNull(), - source: text("source"), -}); - -export const users = pgTable("users", { - id: uuid("id").defaultRandom().primaryKey().notNull(), - name: text("name"), - email: text("email"), - channel_id: text("channel_id"), - google_id: text("google_id"), - uploads_playlist_id: text("uploads_playlist_id"), - subscription_tier: subscription_tier("subscription_tier").default('free').notNull(), - tokens: integer("tokens").default(0).notNull(), - stripe_id: text("stripe_id"), -}); - -export const sites = pgTable("sites", { - id: uuid("id").defaultRandom().primaryKey().notNull(), - user_id: uuid("user_id").references(() => users.id), - name: text("name"), - primary_color_hex: varchar("primary_color_hex", { length: 6 }).default('c4ced4'::character varying).notNull(), - secondary_color_hex: varchar("secondary_color_hex", { length: 6 }).default('27251f'::character varying).notNull(), - text_color_hex: varchar("text_color_hex", { length: 6 }).default('ffffff'::character varying).notNull(), - title: text("title").default('The best blog in the world!'), - subtitle: text("subtitle").default('Some extra info about the best blog in the world!'), - domain: text("domain"), - send_freebie: boolean("send_freebie").default(false), - freebie_name: text("freebie_name").default(''), - freebie_url: text("freebie_url").default(''), - freebie_text: text("freebie_text").default(''), - freebie_image_url: text("freebie_image_url").default(''), - subdomain_slug: text("subdomain_slug"), - social_medias: jsonb("social_medias"), -}); - -export const sessions = pgTable("sessions", { - id: uuid("id").defaultRandom().primaryKey().notNull(), - user_id: uuid("user_id").references(() => users.id), - google_access_token: text("google_access_token"), - google_refresh_token: text("google_refresh_token"), - expires_at: timestamp("expires_at", { mode: 'string' }), -}); - -export const articles = pgTable("articles", { - id: uuid("id").defaultRandom().primaryKey().notNull(), - site_id: uuid("site_id").references(() => sites.id), - content: text("content"), - source_video_id: text("source_video_id"), - title: text("title"), - seo_slug: text("seo_slug"), - created_at: timestamp("created_at", { mode: 'string' }).defaultNow(), - is_public: boolean("is_public").default(false), - views: integer("views").default(0), - seo_title: text("seo_title"), - seo_description: text("seo_description"), - excerp: text("excerp"), -}); - -export const waitlist = pgTable("waitlist", { - email: text("email"), -}); \ No newline at end of file