Index: database/drizzle/queries/components.ts
===================================================================
--- database/drizzle/queries/components.ts	(revision 958bc89ea8bee009837593ad11242676e8d031f1)
+++ database/drizzle/queries/components.ts	(revision ad211d1ca8417919b1358701f1f24d8b8b875a44)
@@ -959,17 +959,4 @@
         if(!build || build.isApproved) return null;
 
-        const existing = await tx
-            .select()
-            .from(buildComponentsTable)
-            .where(
-                and(
-                    eq(buildComponentsTable.buildId, buildId),
-                    eq(buildComponentsTable.componentId, componentId)
-                )
-            )
-            .limit(1);
-
-        if (existing.length) return null;
-
         await tx
             .insert(buildComponentsTable)
Index: database/drizzle/schema/builds.ts
===================================================================
--- database/drizzle/schema/builds.ts	(revision 958bc89ea8bee009837593ad11242676e8d031f1)
+++ database/drizzle/schema/builds.ts	(revision ad211d1ca8417919b1358701f1f24d8b8b875a44)
@@ -17,4 +17,5 @@
 
 export const buildComponentsTable = pgTable("build_component", {
+        id: serial("id").primaryKey(),
         buildId: integer("build_id")
             .notNull()
@@ -24,7 +25,4 @@
             .references(() => componentsTable.id, { onDelete: "cascade", onUpdate: "cascade" }),
     },
-    (t) => ({
-        pk: primaryKey({ columns: [t.buildId, t.componentId] }),
-    }),
 );
 
