Update migration to include GIN indexes

This commit is contained in:
Dries Augustyns
2025-12-05 15:42:15 +01:00
parent 18b7d7fe98
commit eac3815668
2 changed files with 16 additions and 0 deletions
@@ -351,6 +351,9 @@ CREATE INDEX "contacts_projectId_idx" ON "contacts"("projectId");
-- CreateIndex
CREATE INDEX "contacts_projectId_subscribed_idx" ON "contacts"("projectId", "subscribed");
-- CreateIndex
CREATE INDEX "contacts_data_idx" ON "contacts" USING GIN ("data" jsonb_ops);
-- CreateIndex
CREATE UNIQUE INDEX "contacts_projectId_email_key" ON "contacts"("projectId", "email");
@@ -363,6 +366,9 @@ CREATE INDEX "templates_projectId_type_idx" ON "templates"("projectId", "type");
-- CreateIndex
CREATE INDEX "segments_projectId_idx" ON "segments"("projectId");
-- CreateIndex
CREATE INDEX "segments_condition_idx" ON "segments" USING GIN ("condition" jsonb_ops);
-- CreateIndex
CREATE INDEX "segment_memberships_segmentId_exitedAt_idx" ON "segment_memberships"("segmentId", "exitedAt");
@@ -381,6 +387,9 @@ CREATE INDEX "campaigns_scheduledFor_idx" ON "campaigns"("scheduledFor");
-- CreateIndex
CREATE INDEX "campaigns_segmentId_idx" ON "campaigns"("segmentId");
-- CreateIndex
CREATE INDEX "campaigns_audienceCondition_idx" ON "campaigns" USING GIN ("audienceCondition" jsonb_ops);
-- CreateIndex
CREATE INDEX "workflows_projectId_idx" ON "workflows"("projectId");
@@ -480,6 +489,9 @@ CREATE INDEX "events_projectId_contactId_name_createdAt_idx" ON "events"("projec
-- CreateIndex
CREATE INDEX "events_contactId_name_createdAt_idx" ON "events"("contactId", "name", "createdAt");
-- CreateIndex
CREATE INDEX "events_data_idx" ON "events" USING GIN ("data" jsonb_ops);
-- CreateIndex
CREATE INDEX "api_requests_projectId_createdAt_idx" ON "api_requests"("projectId", "createdAt" DESC);
+4
View File
@@ -146,6 +146,7 @@ model Contact {
@@unique([projectId, email])
@@index([projectId])
@@index([projectId, subscribed])
@@index([data(ops: JsonbOps)], type: Gin) // GIN index for fast JSON queries on Contact.data
@@map("contacts")
}
@@ -236,6 +237,7 @@ model Segment {
updatedAt DateTime @updatedAt
@@index([projectId])
@@index([condition(ops: JsonbOps)], type: Gin) // GIN index for segment condition queries
@@map("segments")
}
@@ -313,6 +315,7 @@ model Campaign {
@@index([projectId, status])
@@index([scheduledFor])
@@index([segmentId])
@@index([audienceCondition(ops: JsonbOps)], type: Gin) // GIN index for campaign audience condition queries
@@map("campaigns")
}
@@ -608,6 +611,7 @@ model Event {
@@index([createdAt])
@@index([projectId, contactId, name, createdAt]) // For event-based segment queries (fast!)
@@index([contactId, name, createdAt]) // For per-contact event lookups
@@index([data(ops: JsonbOps)], type: Gin) // GIN index for event data queries
@@map("events")
}