Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 86 additions & 46 deletions apps/api/drizzle/0000_whole_glorian.sql
Original file line number Diff line number Diff line change
@@ -1,56 +1,96 @@
CREATE TABLE "daily_data" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"user_id" varchar(26) NOT NULL,
"date" date NOT NULL,
"time_spent" integer NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
CREATE TABLE IF NOT EXISTS "users" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"email" text NOT NULL,
"password" text NOT NULL,
"profile_picture" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "users_name_unique" UNIQUE("name"),
CONSTRAINT "users_email_unique" UNIQUE("email")
);

--> statement-breakpoint
CREATE TABLE "files" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"project_id" varchar(26) NOT NULL,
"language_id" varchar(26) NOT NULL,
"name" text NOT NULL,
"path" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL

CREATE TABLE IF NOT EXISTS "daily_data" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"user_id" varchar(26) NOT NULL,
"date" date NOT NULL,
"time_spent" integer NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);

--> statement-breakpoint
CREATE TABLE "languages" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"daily_data_id" varchar(26) NOT NULL,
"language_slug" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL

CREATE TABLE IF NOT EXISTS "languages" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"daily_data_id" varchar(26) NOT NULL,
"language_slug" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "projects" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"daily_data_id" varchar(26) NOT NULL,
"name" text NOT NULL,
"path" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL

CREATE TABLE IF NOT EXISTS "projects" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"daily_data_id" varchar(26) NOT NULL,
"name" text NOT NULL,
"path" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
CREATE TABLE "users" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"email" text NOT NULL,
"password" text NOT NULL,
"profile_picture" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "users_name_unique" UNIQUE("name"),
CONSTRAINT "users_email_unique" UNIQUE("email")

CREATE TABLE IF NOT EXISTS "files" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"project_id" varchar(26) NOT NULL,
"language_id" varchar(26) NOT NULL,
"name" text NOT NULL,
"path" text NOT NULL,
"time_spent" integer DEFAULT 0 NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "daily_data" ADD CONSTRAINT "daily_data_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "files" ADD CONSTRAINT "files_project_id_projects_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "files" ADD CONSTRAINT "files_language_id_languages_id_fk" FOREIGN KEY ("language_id") REFERENCES "public"."languages"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "languages" ADD CONSTRAINT "languages_daily_data_id_daily_data_id_fk" FOREIGN KEY ("daily_data_id") REFERENCES "public"."daily_data"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "projects" ADD CONSTRAINT "projects_daily_data_id_daily_data_id_fk" FOREIGN KEY ("daily_data_id") REFERENCES "public"."daily_data"("id") ON DELETE cascade ON UPDATE no action;

DO $$ BEGIN
ALTER TABLE "daily_data" ADD CONSTRAINT "daily_data_user_id_users_id_fk"
FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
--> statement-breakpoint

DO $$ BEGIN
ALTER TABLE "languages" ADD CONSTRAINT "languages_daily_data_id_daily_data_id_fk"
FOREIGN KEY ("daily_data_id") REFERENCES "public"."daily_data"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
--> statement-breakpoint

DO $$ BEGIN
ALTER TABLE "projects" ADD CONSTRAINT "projects_daily_data_id_daily_data_id_fk"
FOREIGN KEY ("daily_data_id") REFERENCES "public"."daily_data"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
--> statement-breakpoint

DO $$ BEGIN
ALTER TABLE "files" ADD CONSTRAINT "files_project_id_projects_id_fk"
FOREIGN KEY ("project_id") REFERENCES "public"."projects"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
--> statement-breakpoint

DO $$ BEGIN
ALTER TABLE "files" ADD CONSTRAINT "files_language_id_languages_id_fk"
FOREIGN KEY ("language_id") REFERENCES "public"."languages"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
32 changes: 21 additions & 11 deletions apps/api/drizzle/0001_robust_wallflower.sql
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
CREATE INDEX "daily_data_user_id_index" ON "daily_data" USING btree ("user_id");--> statement-breakpoint
CREATE INDEX "daily_data_date_index" ON "daily_data" USING btree ("date");--> statement-breakpoint
CREATE INDEX "project_id_index" ON "files" USING btree ("project_id");--> statement-breakpoint
CREATE INDEX "language_id_index" ON "files" USING btree ("language_id");--> statement-breakpoint
CREATE INDEX "file_name_idx" ON "files" USING btree ("name");--> statement-breakpoint
CREATE INDEX "file_path_idx" ON "files" USING btree ("path");--> statement-breakpoint
CREATE INDEX "language_daily_data_id_index" ON "languages" USING btree ("daily_data_id");--> statement-breakpoint
CREATE INDEX "language_slug_index" ON "languages" USING btree ("language_slug");--> statement-breakpoint
CREATE INDEX "project_daily_data_id_index" ON "projects" USING btree ("daily_data_id");--> statement-breakpoint
CREATE INDEX "project_name_index" ON "projects" USING btree ("name");--> statement-breakpoint
CREATE INDEX "project_path_index" ON "projects" USING btree ("path");
CREATE INDEX IF NOT EXISTS "daily_data_user_id_index" ON "daily_data" USING btree ("user_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "daily_data_date_index" ON "daily_data" USING btree ("date");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "project_id_index" ON "files" USING btree ("project_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "language_id_index" ON "files" USING btree ("language_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_name_idx" ON "files" USING btree ("name");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_path_idx" ON "files" USING btree ("path");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "language_daily_data_id_index" ON "languages" USING btree ("daily_data_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "language_slug_index" ON "languages" USING btree ("language_slug");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "project_daily_data_id_index" ON "projects" USING btree ("daily_data_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "project_name_index" ON "projects" USING btree ("name");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "project_path_index" ON "projects" USING btree ("path");
11 changes: 7 additions & 4 deletions apps/api/drizzle/0002_known_reaper.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
DROP INDEX "file_name_idx";--> statement-breakpoint
DROP INDEX "file_path_idx";--> statement-breakpoint
CREATE INDEX "file_name_index" ON "files" USING btree ("name");--> statement-breakpoint
CREATE INDEX "file_path_index" ON "files" USING btree ("path");
DROP INDEX IF EXISTS "file_name_idx";
--> statement-breakpoint
DROP INDEX IF EXISTS "file_path_idx";
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_name_index" ON "files" USING btree ("name");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "file_path_index" ON "files" USING btree ("path");
9 changes: 5 additions & 4 deletions apps/api/drizzle/0003_first_pepper_potts.sql
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
ALTER TABLE "users" ADD COLUMN "google_id" text;--> statement-breakpoint
ALTER TABLE "users" ADD COLUMN "google_email" text;--> statement-breakpoint
ALTER TABLE "users" ADD COLUMN "auth_method" text DEFAULT 'email';--> statement-breakpoint
ALTER TABLE "users" ADD CONSTRAINT "users_google_email_unique" UNIQUE("google_email");
ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "google_id" text;
--> statement-breakpoint
ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "google_email" text;
--> statement-breakpoint
ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "auth_method" text DEFAULT 'email';
22 changes: 20 additions & 2 deletions apps/api/drizzle/0004_groovy_weapon_omega.sql
Original file line number Diff line number Diff line change
@@ -1,2 +1,20 @@
ALTER TABLE "users" DROP CONSTRAINT "users_google_email_unique";--> statement-breakpoint
ALTER TABLE "users" ADD CONSTRAINT "users_google_id_unique" UNIQUE("google_id");
DO $$
BEGIN
BEGIN
ALTER TABLE "users" DROP CONSTRAINT IF EXISTS "users_google_email_unique";
EXCEPTION
WHEN undefined_object THEN NULL;
END;

BEGIN
ALTER TABLE "users" DROP CONSTRAINT IF EXISTS "users_google_id_unique";
EXCEPTION
WHEN undefined_object THEN NULL;
END;

ALTER TABLE "users" ADD CONSTRAINT "users_google_id_unique" UNIQUE("google_id");

EXCEPTION
WHEN duplicate_object OR duplicate_table OR unique_violation THEN
NULL;
END $$;
9 changes: 8 additions & 1 deletion apps/api/drizzle/0005_legal_tattoo.sql
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
ALTER TABLE "users" ADD CONSTRAINT "users_google_email_unique" UNIQUE("google_email");
DO $$
BEGIN
ALTER TABLE "users" DROP CONSTRAINT IF EXISTS "users_google_email_unique";
ALTER TABLE "users" ADD CONSTRAINT "users_google_email_unique" UNIQUE("google_email");
EXCEPTION
WHEN duplicate_object THEN NULL;
WHEN undefined_object THEN NULL;
END $$;
3 changes: 2 additions & 1 deletion apps/api/drizzle/0006_aromatic_shiver_man.sql
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
ALTER TABLE "users" ADD COLUMN "email_verified_at" timestamp DEFAULT NULL;
ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "email_verified_at" timestamp DEFAULT NULL;
--> statement-breakpoint
2 changes: 1 addition & 1 deletion apps/api/drizzle/0007_default_email_verification.sql
Original file line number Diff line number Diff line change
@@ -1 +1 @@
UPDATE users SET email_verified_at = NOW();
UPDATE users SET email_verified_at = NOW() WHERE email_verified_at IS NULL;
20 changes: 10 additions & 10 deletions apps/api/drizzle/0008_pale_mach_iv.sql
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
CREATE TABLE "pending_registrations" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"email" text NOT NULL,
"password" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "pending_registrations_name_unique" UNIQUE("name"),
CONSTRAINT "pending_registrations_email_unique" UNIQUE("email")
);
CREATE TABLE IF NOT EXISTS "pending_registrations" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"email" text NOT NULL,
"password" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "pending_registrations_name_unique" UNIQUE("name"),
CONSTRAINT "pending_registrations_email_unique" UNIQUE("email")
);
2 changes: 1 addition & 1 deletion apps/api/drizzle/0009_old_toad_men.sql
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ALTER TABLE "pending_registrations" ADD COLUMN "code" varchar(8) NOT NULL;
ALTER TABLE "pending_registrations" ADD COLUMN IF NOT EXISTS "code" varchar(8) NOT NULL;
2 changes: 1 addition & 1 deletion apps/api/drizzle/0010_naive_groot.sql
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ALTER TABLE "pending_registrations" ADD COLUMN "expires_at" timestamp DEFAULT now() + interval '30 minutes' NOT NULL;
ALTER TABLE "pending_registrations" ADD COLUMN IF NOT EXISTS "expires_at" timestamp DEFAULT (now() + interval '30 minutes') NOT NULL;
8 changes: 7 additions & 1 deletion apps/api/drizzle/0011_chemical_archangel.sql
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
ALTER TABLE "users" RENAME COLUMN "password" TO "hashed_password";
DO $$
BEGIN
ALTER TABLE "users" RENAME COLUMN "password" TO "hashed_password";
EXCEPTION
WHEN undefined_column OR duplicate_column THEN NULL;
END $$;
--> statement-breakpoint
7 changes: 6 additions & 1 deletion apps/api/drizzle/0012_dry_night_thrasher.sql
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
ALTER TABLE "pending_registrations" RENAME COLUMN "password" TO "hashed_password";
DO $$
BEGIN
ALTER TABLE "pending_registrations" RENAME COLUMN "password" TO "hashed_password";
EXCEPTION
WHEN undefined_column OR duplicate_column THEN NULL;
END $$;
34 changes: 21 additions & 13 deletions apps/api/drizzle/0013_smart_bromley.sql
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
CREATE TABLE "password_resets" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"user_id" varchar(26) NOT NULL,
"email" text NOT NULL,
"code" varchar(8) NOT NULL,
"attempts" integer DEFAULT 0 NOT NULL,
"expires_at" timestamp DEFAULT now() + interval '15 minutes' NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "password_resets_email_unique" UNIQUE("email")
CREATE TABLE IF NOT EXISTS "password_resets" (
"id" varchar(26) PRIMARY KEY NOT NULL,
"user_id" varchar(26) NOT NULL,
"email" text NOT NULL,
"code" varchar(8) NOT NULL,
"attempts" integer DEFAULT 0 NOT NULL,
"expires_at" timestamp DEFAULT (now() + interval '15 minutes') NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "password_resets_email_unique" UNIQUE("email")
);
--> statement-breakpoint
ALTER TABLE "password_resets" ADD CONSTRAINT "password_resets_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "password_resets_user_id_index" ON "password_resets" USING btree ("user_id");--> statement-breakpoint
CREATE INDEX "password_resets_email_index" ON "password_resets" USING btree ("email");
DO $$
BEGIN
ALTER TABLE "password_resets" ADD CONSTRAINT "password_resets_user_id_users_id_fk"
FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;
EXCEPTION
WHEN duplicate_object THEN NULL;
END $$;
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "password_resets_user_id_index" ON "password_resets" USING btree ("user_id");
--> statement-breakpoint
CREATE INDEX IF NOT EXISTS "password_resets_email_index" ON "password_resets" USING btree ("email");
2 changes: 1 addition & 1 deletion apps/api/drizzle/0014_new_trauma.sql
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ALTER TABLE "pending_registrations" ADD COLUMN "attempts" integer DEFAULT 0 NOT NULL;
ALTER TABLE "pending_registrations" ADD COLUMN IF NOT EXISTS "attempts" integer DEFAULT 0 NOT NULL;