32 lines
1.4 KiB
SQL
32 lines
1.4 KiB
SQL
CREATE TABLE "habit_logs" (
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"habit_id" integer NOT NULL,
|
|
"logged_at" timestamp DEFAULT now() NOT NULL,
|
|
"note" text
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "habits" (
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"user_id" integer NOT NULL,
|
|
"name" text NOT NULL,
|
|
"type" text DEFAULT 'neutral' NOT NULL,
|
|
"target_frequency" jsonb,
|
|
"color" text,
|
|
"icon" text,
|
|
"is_archived" boolean DEFAULT false NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
"archived_at" timestamp
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE "users" (
|
|
"id" serial PRIMARY KEY NOT NULL,
|
|
"token" text NOT NULL,
|
|
"created_at" timestamp DEFAULT now() NOT NULL,
|
|
CONSTRAINT "users_token_unique" UNIQUE("token")
|
|
);
|
|
--> statement-breakpoint
|
|
ALTER TABLE "habit_logs" ADD CONSTRAINT "habit_logs_habit_id_habits_id_fk" FOREIGN KEY ("habit_id") REFERENCES "public"."habits"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
ALTER TABLE "habits" ADD CONSTRAINT "habits_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
|
|
CREATE INDEX "habit_logs_habit_id_idx" ON "habit_logs" USING btree ("habit_id");--> statement-breakpoint
|
|
CREATE INDEX "habit_logs_logged_at_idx" ON "habit_logs" USING btree ("logged_at");--> statement-breakpoint
|
|
CREATE INDEX "habits_user_id_idx" ON "habits" USING btree ("user_id"); |