From a8392312c11923a83d7d15461cef8e1a74c2d928 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Mon, 4 Nov 2024 20:53:22 +0100 Subject: [PATCH] feat(db): update drizzle version --- bun.lockb | Bin 545112 -> 546152 bytes packages/database/package.json | 4 +- packages/database/src/schema/_basic.ts | 7 +++ packages/database/src/schema/access_token.ts | 13 +++-- packages/database/src/schema/changelog.ts | 57 +++++++++---------- packages/database/src/schema/page.ts | 13 +++-- packages/database/src/schema/user.ts | 6 +- 7 files changed, 54 insertions(+), 46 deletions(-) create mode 100644 packages/database/src/schema/_basic.ts diff --git a/bun.lockb b/bun.lockb index 63514d498b51f6e604acd26c0cf637617bd4dbe1..2e7f3dcbf3add344c544b0188467ae5f4e6363aa 100755 GIT binary patch delta 32897 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 delta 32163 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 diff --git a/packages/database/package.json b/packages/database/package.json index 20fdb44..9a2a7ac 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -12,14 +12,14 @@ "devDependencies": { "@types/bun": "latest", "@types/pg": "^8.11.10", - "drizzle-kit": "^0.24.2" + "drizzle-kit": "^0.27.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "dependencies": { "@boring.tools/logger": "workspace:*", - "drizzle-orm": "^0.33.0", + "drizzle-orm": "^0.36.0", "pg": "^8.13.0" } } diff --git a/packages/database/src/schema/_basic.ts b/packages/database/src/schema/_basic.ts new file mode 100644 index 0000000..b522c95 --- /dev/null +++ b/packages/database/src/schema/_basic.ts @@ -0,0 +1,7 @@ +import { timestamp, uuid } from 'drizzle-orm/pg-core' + +export const _basic_schema = { + id: uuid().primaryKey(), + createdAt: timestamp({ withTimezone: true }).defaultNow().notNull(), + updatedAt: timestamp({ withTimezone: true }), +} diff --git a/packages/database/src/schema/access_token.ts b/packages/database/src/schema/access_token.ts index 4a5be11..85b7418 100644 --- a/packages/database/src/schema/access_token.ts +++ b/packages/database/src/schema/access_token.ts @@ -1,16 +1,17 @@ import { relations } from 'drizzle-orm' import { pgTable, text, timestamp, uuid, varchar } from 'drizzle-orm/pg-core' import { user } from '.' +import { _basic_schema } from './_basic' export const access_token = pgTable('access_token', { - id: uuid('id').primaryKey().defaultRandom(), - userId: varchar('userId', { length: 32 }).references(() => user.id, { + ..._basic_schema, + + userId: varchar({ length: 32 }).references(() => user.id, { onDelete: 'cascade', }), - token: text('token').notNull(), - name: text('name').notNull(), - createdAt: timestamp('createdAt').defaultNow().notNull(), - lastUsedOn: timestamp('lastUsedOn'), + token: text().notNull(), + name: text().notNull(), + lastUsedOn: timestamp(), }) export const access_token_relation = relations(access_token, ({ one }) => ({ diff --git a/packages/database/src/schema/changelog.ts b/packages/database/src/schema/changelog.ts index 0ac1976..4ae4632 100644 --- a/packages/database/src/schema/changelog.ts +++ b/packages/database/src/schema/changelog.ts @@ -11,33 +11,32 @@ import { } from 'drizzle-orm/pg-core' import { json } from 'drizzle-orm/pg-core' import { uniqueIndex } from 'drizzle-orm/pg-core' +import { _basic_schema } from './_basic' import { page } from './page' import { user } from './user' export const changelog = pgTable('changelog', { - id: uuid('id').primaryKey().defaultRandom(), - createdAt: timestamp('createdAt').defaultNow(), - updatedAt: timestamp('updatedAt'), + ..._basic_schema, - userId: varchar('userId', { length: 32 }).references(() => user.id, { + userId: varchar({ length: 32 }).references(() => user.id, { onDelete: 'cascade', }), - pageId: uuid('pageId').references(() => page.id), + pageId: uuid().references(() => page.id), - title: varchar('title', { length: 256 }), - description: text('description'), - isSemver: boolean('isSemver').default(true), - isConventional: boolean('isConventional').default(true), + title: varchar({ length: 256 }), + description: text(), + isSemver: boolean().default(true), + isConventional: boolean().default(true), }) export const changelogs_to_pages = pgTable( 'changelogs_to_pages', { - changelogId: uuid('changelogId') + changelogId: uuid() .notNull() .references(() => changelog.id, { onDelete: 'cascade' }), - pageId: uuid('pageId') + pageId: uuid() .notNull() .references(() => page.id, { onDelete: 'cascade' }), }, @@ -77,50 +76,50 @@ export const changelog_version_status = pgEnum('status', [ ]) export const changelog_version = pgTable('changelog_version', { - id: uuid('id').primaryKey().defaultRandom(), - createdAt: timestamp('createdAt').defaultNow(), - updatedAt: timestamp('updatedAt'), - releasedAt: timestamp('releasedAt'), + id: uuid().primaryKey().defaultRandom(), + createdAt: timestamp().defaultNow(), + updatedAt: timestamp(), + releasedAt: timestamp(), - changelogId: uuid('changelogId') + changelogId: uuid() .references(() => changelog.id, { onDelete: 'cascade', }) .notNull(), - version: varchar('version', { length: 32 }).notNull(), - markdown: text('markdown').notNull(), - status: changelog_version_status('status').default('draft').notNull(), + version: varchar({ length: 32 }).notNull(), + markdown: text().notNull(), + status: changelog_version_status().default('draft').notNull(), }) export const changelog_commit = pgTable( 'changelog_commit', { - id: uuid('id').primaryKey().defaultRandom(), - createdAt: timestamp('createdAt'), + id: uuid().primaryKey().defaultRandom(), + createdAt: timestamp(), - changelogId: uuid('changelogId').references(() => changelog.id, { + changelogId: uuid().references(() => changelog.id, { onDelete: 'cascade', }), - versionId: uuid('versionId').references(() => changelog_version.id, { + versionId: uuid().references(() => changelog_version.id, { onUpdate: 'set null', }), - commit: varchar('commit', { length: 8 }).notNull(), - parent: varchar('parent', { length: 8 }), - subject: text('subject').notNull(), - author: json('author').$type<{ + commit: varchar({ length: 8 }).notNull(), + parent: varchar({ length: 8 }), + subject: text().notNull(), + author: json().$type<{ name: string email: string date: string }>(), - commiter: json('comitter').$type<{ + commiter: json().$type<{ name: string email: string date: string }>(), - body: text('body'), + body: text(), }, (table) => ({ unique: uniqueIndex('unique').on(table.changelogId, table.commit), diff --git a/packages/database/src/schema/page.ts b/packages/database/src/schema/page.ts index 68881ef..f09034a 100644 --- a/packages/database/src/schema/page.ts +++ b/packages/database/src/schema/page.ts @@ -1,18 +1,19 @@ import { relations } from 'drizzle-orm' import { pgTable, text, uuid, varchar } from 'drizzle-orm/pg-core' -import { changelog, changelogs_to_pages } from './changelog' +import { _basic_schema } from './_basic' +import { changelogs_to_pages } from './changelog' import { user } from './user' export const page = pgTable('page', { - id: uuid('id').primaryKey().defaultRandom(), + ..._basic_schema, - userId: varchar('userId', { length: 32 }).references(() => user.id, { + userId: varchar({ length: 32 }).references(() => user.id, { onDelete: 'cascade', }), - title: text('title').notNull(), - description: text('description').notNull(), - icon: text('icon').default(''), + title: text().notNull(), + description: text().notNull(), + icon: text().default(''), }) export const pageRelation = relations(page, ({ many }) => ({ diff --git a/packages/database/src/schema/user.ts b/packages/database/src/schema/user.ts index 955a762..7e0a101 100644 --- a/packages/database/src/schema/user.ts +++ b/packages/database/src/schema/user.ts @@ -4,9 +4,9 @@ import { access_token } from '.' import { changelog } from './changelog' export const user = pgTable('user', { - id: varchar('id', { length: 32 }).primaryKey(), // Clerk User Id - name: text('name'), - email: text('email').notNull().unique(), + id: varchar({ length: 32 }).primaryKey(), // Clerk User Id + name: text(), + email: text().notNull().unique(), }) export const userRelation = relations(user, ({ many }) => ({