| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- CREATE TABLE "group_roles" (
- "group_id" uuid,
- "role_id" uuid,
- CONSTRAINT "group_roles_group_id_role_id_pk" PRIMARY KEY("group_id","role_id")
- );
- --> statement-breakpoint
- CREATE TABLE "groups" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "name" varchar(100) NOT NULL,
- "parent_id" uuid,
- "created_at" timestamp DEFAULT now() NOT NULL
- );
- --> statement-breakpoint
- CREATE TABLE "permissions" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "action" varchar(50) NOT NULL,
- "resource_type" varchar(50) NOT NULL
- );
- --> statement-breakpoint
- CREATE TABLE "role_permissions" (
- "role_id" uuid,
- "permission_id" uuid,
- CONSTRAINT "role_permissions_role_id_permission_id_pk" PRIMARY KEY("role_id","permission_id")
- );
- --> statement-breakpoint
- CREATE TABLE "roles" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "name" varchar(50) NOT NULL,
- "description" text,
- CONSTRAINT "roles_name_unique" UNIQUE("name")
- );
- --> statement-breakpoint
- CREATE TABLE "user_groups" (
- "user_id" uuid,
- "group_id" uuid,
- CONSTRAINT "user_groups_user_id_group_id_pk" PRIMARY KEY("user_id","group_id")
- );
- --> statement-breakpoint
- CREATE TABLE "user_roles" (
- "user_id" uuid,
- "role_id" uuid,
- CONSTRAINT "user_roles_user_id_role_id_pk" PRIMARY KEY("user_id","role_id")
- );
- --> statement-breakpoint
- CREATE TABLE "users" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "email" varchar(255) NOT NULL,
- "name" text,
- "password_hash" text NOT NULL,
- "created_at" timestamp DEFAULT now() NOT NULL,
- "updated_at" timestamp DEFAULT now() NOT NULL,
- CONSTRAINT "users_email_unique" UNIQUE("email")
- );
- --> statement-breakpoint
- CREATE TABLE "acl_rules" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "resource_id" uuid NOT NULL,
- "subject_type" varchar(20) NOT NULL,
- "subject_id" uuid NOT NULL,
- "permission_type" varchar(20) NOT NULL,
- "action" varchar(50) NOT NULL,
- "created_at" timestamp DEFAULT now() NOT NULL
- );
- --> statement-breakpoint
- CREATE TABLE "resources" (
- "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
- "name" varchar(255) NOT NULL,
- "path" text NOT NULL,
- "type" varchar(50) NOT NULL,
- "owner_id" uuid,
- "created_at" timestamp DEFAULT now() NOT NULL,
- "updated_at" timestamp DEFAULT now() NOT NULL,
- CONSTRAINT "resources_path_unique" UNIQUE("path")
- );
- --> statement-breakpoint
- ALTER TABLE "group_roles" ADD CONSTRAINT "group_roles_group_id_groups_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."groups"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "group_roles" ADD CONSTRAINT "group_roles_role_id_roles_id_fk" FOREIGN KEY ("role_id") REFERENCES "public"."roles"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "role_permissions" ADD CONSTRAINT "role_permissions_role_id_roles_id_fk" FOREIGN KEY ("role_id") REFERENCES "public"."roles"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "role_permissions" ADD CONSTRAINT "role_permissions_permission_id_permissions_id_fk" FOREIGN KEY ("permission_id") REFERENCES "public"."permissions"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "user_groups" ADD CONSTRAINT "user_groups_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "user_groups" ADD CONSTRAINT "user_groups_group_id_groups_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."groups"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_user_id_users_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."users"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "user_roles" ADD CONSTRAINT "user_roles_role_id_roles_id_fk" FOREIGN KEY ("role_id") REFERENCES "public"."roles"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "acl_rules" ADD CONSTRAINT "acl_rules_resource_id_resources_id_fk" FOREIGN KEY ("resource_id") REFERENCES "public"."resources"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
- ALTER TABLE "resources" ADD CONSTRAINT "resources_owner_id_users_id_fk" FOREIGN KEY ("owner_id") REFERENCES "public"."users"("id") ON DELETE set null ON UPDATE no action;
|