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"); |