Skip to content

Commit

Permalink
feat(db): preferred review tags table (#144)
Browse files Browse the repository at this point in the history
  • Loading branch information
shivarm authored Sep 12, 2024
1 parent 9d0dd0d commit 3cc82f4
Show file tree
Hide file tree
Showing 5 changed files with 415 additions and 1 deletion.
15 changes: 15 additions & 0 deletions server/db/migrations/0008_open_quentin_quire.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
CREATE TABLE IF NOT EXISTS "review_tags" (
"id" serial PRIMARY KEY NOT NULL,
"title" varchar(8) NOT NULL,
"parent" smallint NOT NULL
);
--> statement-breakpoint
ALTER TABLE "posting_applicants" DROP CONSTRAINT "posting_applicants_owner_id_users_id_fk";
--> statement-breakpoint
ALTER TABLE "posting_applicants" ALTER COLUMN "owner_id" SET NOT NULL;--> statement-breakpoint
ALTER TABLE "posting_applicants" ALTER COLUMN "job_id" SET NOT NULL;--> statement-breakpoint
DO $$ BEGIN
ALTER TABLE "posting_applicants" ADD CONSTRAINT "posting_applicants_owner_id_users_id_fk" FOREIGN KEY ("owner_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN null;
END $$;
371 changes: 371 additions & 0 deletions server/db/migrations/meta/0008_snapshot.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,371 @@
{
"id": "36dac6d2-f744-494c-9e0c-652d8efceccf",
"prevId": "cc4af3d8-c8e8-4adf-b145-bd61742066c3",
"version": "7",
"dialect": "postgresql",
"tables": {
"public.hooks": {
"name": "hooks",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true
},
"title": {
"name": "title",
"type": "varchar(40)",
"primaryKey": false,
"notNull": true
},
"url": {
"name": "url",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"prefs": {
"name": "prefs",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"last_executed_at": {
"name": "last_executed_at",
"type": "timestamp",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.job_postings": {
"name": "job_postings",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true
},
"title": {
"name": "title",
"type": "varchar(150)",
"primaryKey": false,
"notNull": true
},
"contents": {
"name": "contents",
"type": "text",
"primaryKey": false,
"notNull": false
},
"tags_csv": {
"name": "tags_csv",
"type": "text",
"primaryKey": false,
"notNull": false
},
"owner_id": {
"name": "owner_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"is_published": {
"name": "is_published",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
},
"total_applicants": {
"name": "total_applicants",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"job_postings_owner_id_users_id_fk": {
"name": "job_postings_owner_id_users_id_fk",
"tableFrom": "job_postings",
"tableTo": "users",
"columnsFrom": ["owner_id"],
"columnsTo": ["id"],
"onDelete": "set null",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.metadata_entries": {
"name": "metadata_entries",
"schema": "",
"columns": {
"key": {
"name": "key",
"type": "varchar(48)",
"primaryKey": true,
"notNull": true
},
"value": {
"name": "value",
"type": "text",
"primaryKey": false,
"notNull": false
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
},
"updated_at": {
"name": "updated_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.posting_applicants": {
"name": "posting_applicants",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true
},
"owner_id": {
"name": "owner_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"job_id": {
"name": "job_id",
"type": "uuid",
"primaryKey": false,
"notNull": true
},
"created_at": {
"name": "created_at",
"type": "timestamp",
"primaryKey": false,
"notNull": true,
"default": "now()"
}
},
"indexes": {},
"foreignKeys": {
"posting_applicants_owner_id_users_id_fk": {
"name": "posting_applicants_owner_id_users_id_fk",
"tableFrom": "posting_applicants",
"tableTo": "users",
"columnsFrom": ["owner_id"],
"columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
},
"posting_applicants_job_id_job_postings_id_fk": {
"name": "posting_applicants_job_id_job_postings_id_fk",
"tableFrom": "posting_applicants",
"tableTo": "job_postings",
"columnsFrom": ["job_id"],
"columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.review_tags": {
"name": "review_tags",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "serial",
"primaryKey": true,
"notNull": true
},
"title": {
"name": "title",
"type": "varchar(8)",
"primaryKey": false,
"notNull": true
},
"parent": {
"name": "parent",
"type": "smallint",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.user_handles": {
"name": "user_handles",
"schema": "",
"columns": {
"user_id": {
"name": "user_id",
"type": "uuid",
"primaryKey": false,
"notNull": false
},
"key": {
"name": "key",
"type": "varchar(15)",
"primaryKey": false,
"notNull": true
},
"value": {
"name": "value",
"type": "text",
"primaryKey": false,
"notNull": true
}
},
"indexes": {},
"foreignKeys": {
"user_handles_user_id_users_id_fk": {
"name": "user_handles_user_id_users_id_fk",
"tableFrom": "user_handles",
"tableTo": "users",
"columnsFrom": ["user_id"],
"columnsTo": ["id"],
"onDelete": "cascade",
"onUpdate": "no action"
}
},
"compositePrimaryKeys": {},
"uniqueConstraints": {}
},
"public.users": {
"name": "users",
"schema": "",
"columns": {
"id": {
"name": "id",
"type": "uuid",
"primaryKey": true,
"notNull": true
},
"first_name": {
"name": "first_name",
"type": "varchar(50)",
"primaryKey": false,
"notNull": false
},
"last_name": {
"name": "last_name",
"type": "varchar(50)",
"primaryKey": false,
"notNull": false
},
"picture": {
"name": "picture",
"type": "text",
"primaryKey": false,
"notNull": false
},
"email": {
"name": "email",
"type": "varchar(255)",
"primaryKey": false,
"notNull": true
},
"permission": {
"name": "permission",
"type": "integer",
"primaryKey": false,
"notNull": true,
"default": 0
},
"top_5_skills_csv": {
"name": "top_5_skills_csv",
"type": "text",
"primaryKey": false,
"notNull": false
},
"is_admin": {
"name": "is_admin",
"type": "boolean",
"primaryKey": false,
"notNull": true,
"default": false
}
},
"indexes": {},
"foreignKeys": {},
"compositePrimaryKeys": {},
"uniqueConstraints": {
"users_email_unique": {
"name": "users_email_unique",
"nullsNotDistinct": false,
"columns": ["email"]
}
}
}
},
"enums": {},
"schemas": {},
"sequences": {},
"_meta": {
"columns": {},
"schemas": {},
"tables": {}
}
}
Loading

0 comments on commit 3cc82f4

Please sign in to comment.