diff --git a/drizzle/0003_same_texas_twister.sql b/drizzle/0003_same_texas_twister.sql new file mode 100644 index 0000000..2e1dc99 --- /dev/null +++ b/drizzle/0003_same_texas_twister.sql @@ -0,0 +1,6 @@ +ALTER TABLE "bookmark_categories" ALTER COLUMN "user_id" SET DEFAULT 0;--> statement-breakpoint +ALTER TABLE "bookmark_categories" ALTER COLUMN "user_id" SET NOT NULL;--> statement-breakpoint +ALTER TABLE "bookmark_categories" ALTER COLUMN "name" SET DEFAULT 'Other';--> statement-breakpoint +ALTER TABLE "bookmark_categories" ALTER COLUMN "name" SET NOT NULL;--> statement-breakpoint +ALTER TABLE "users" ALTER COLUMN "password" SET DEFAULT '';--> statement-breakpoint +ALTER TABLE "users" ALTER COLUMN "password" SET NOT NULL; \ No newline at end of file diff --git a/drizzle/meta/0003_snapshot.json b/drizzle/meta/0003_snapshot.json new file mode 100644 index 0000000..923b6e4 --- /dev/null +++ b/drizzle/meta/0003_snapshot.json @@ -0,0 +1,214 @@ +{ + "version": "5", + "dialect": "pg", + "id": "8ee9d2e6-45d6-45ac-8552-b3e40c39b90e", + "prevId": "bd1fa6fc-b40d-4d9a-b024-69acb0a34270", + "tables": { + "bookmarks": { + "name": "bookmarks", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "category_id": { + "name": "category_id", + "type": "integer", + "primaryKey": false, + "notNull": false + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "link": { + "name": "link", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "description": { + "name": "description", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "url": { + "name": "url", + "type": "text", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": { + "bookmarks_user_id_users_id_fk": { + "name": "bookmarks_user_id_users_id_fk", + "tableFrom": "bookmarks", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "bookmark_categories": { + "name": "bookmark_categories", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true, + "default": 0 + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "'Other'" + } + }, + "indexes": {}, + "foreignKeys": { + "bookmark_categories_user_id_users_id_fk": { + "name": "bookmark_categories_user_id_users_id_fk", + "tableFrom": "bookmark_categories", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "no action", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "session": { + "name": "session", + "schema": "", + "columns": { + "sessionToken": { + "name": "sessionToken", + "type": "text", + "primaryKey": true, + "notNull": true + }, + "user_id": { + "name": "user_id", + "type": "integer", + "primaryKey": false, + "notNull": true + }, + "expires": { + "name": "expires", + "type": "timestamp", + "primaryKey": false, + "notNull": true + } + }, + "indexes": {}, + "foreignKeys": { + "session_user_id_users_id_fk": { + "name": "session_user_id_users_id_fk", + "tableFrom": "session", + "tableTo": "users", + "columnsFrom": [ + "user_id" + ], + "columnsTo": [ + "id" + ], + "onDelete": "cascade", + "onUpdate": "no action" + } + }, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + }, + "users": { + "name": "users", + "schema": "", + "columns": { + "id": { + "name": "id", + "type": "serial", + "primaryKey": true, + "notNull": true + }, + "name": { + "name": "name", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "email": { + "name": "email", + "type": "text", + "primaryKey": false, + "notNull": false + }, + "password": { + "name": "password", + "type": "text", + "primaryKey": false, + "notNull": true, + "default": "''" + }, + "created_at": { + "name": "created_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + }, + "updated_at": { + "name": "updated_at", + "type": "timestamp", + "primaryKey": false, + "notNull": false + } + }, + "indexes": {}, + "foreignKeys": {}, + "compositePrimaryKeys": {}, + "uniqueConstraints": {} + } + }, + "enums": {}, + "schemas": {}, + "_meta": { + "schemas": {}, + "tables": {}, + "columns": {} + } +} \ No newline at end of file diff --git a/drizzle/meta/_journal.json b/drizzle/meta/_journal.json index 40110cc..3083c9f 100644 --- a/drizzle/meta/_journal.json +++ b/drizzle/meta/_journal.json @@ -22,6 +22,13 @@ "when": 1692438117496, "tag": "0002_unusual_nico_minoru", "breakpoints": true + }, + { + "idx": 3, + "version": "5", + "when": 1693043001584, + "tag": "0003_same_texas_twister", + "breakpoints": true } ] } \ No newline at end of file diff --git a/lib/schema.ts b/lib/schema.ts index 3f839fd..c8f7eff 100644 --- a/lib/schema.ts +++ b/lib/schema.ts @@ -5,7 +5,7 @@ export const user = pgTable('users', { id: serial('id').primaryKey(), name: text('name'), email: text('email'), - hashedPassword: text('password').notNull(), + hashedPassword: text('password').notNull().default(''), createdAt: timestamp('created_at'), updatedAt: timestamp('updated_at'), }) @@ -38,8 +38,11 @@ export const bookmarkRelations = relations(bookmark, ({ one }) => ({ export const bookmarkCategory = pgTable('bookmark_categories', { id: serial('id').primaryKey(), - userId: integer('user_id').references(() => user.id), - name: text('name'), + userId: integer('user_id') + .references(() => user.id) + .notNull() + .default(0), + name: text('name').notNull().default('Other'), }) export const bookmarkCategoryRelations = relations(