Document the Prisma partial-index drift on Ticket_email_sourceId_key
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 1/5
- Tiempo estimado
- Menos de una hora
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- sql
- Área
- databases, documentation
Línea de trabajo
Comienza en schema.prisma, en el modelo Ticket, e inspecciona el historial de migraciones existente en busca del SQL sin procesar que crea Ticket_email_sourceId_key. Añade un comentario que nombre el índice parcial, explique por qué solo se puede crear mediante SQL sin procesar y qué deja de funcionar si se elimina. Si hay tiempo, confirma que el índice Message(ticketId, responseKey) se puede expresar en Prisma y revisa la guía de contribución o de migraciones para encontrar la misma advertencia.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Ticket_email_sourceId_key is a partial unique index, created in raw SQL on #170's branch:
CREATE UNIQUE INDEX "Ticket_email_sourceId_key"
ON "Ticket"("sourceId")
WHERE "source" = 'EMAIL' AND "sourceId" IS NOT NULL;
Prisma's schema language cannot express a WHERE clause on @@unique. So the index exists in the database and in the migration history, but has no representation in schema.prisma.
The failure mode
prisma migrate dev compares the schema against the database, sees an index it cannot account for, and reports drift. The suggested resolution is typically to drop it. Someone tidying up a drift warning, in good faith, removes the constraint that stops Postmark retries creating duplicate tickets — and nothing fails, because the guard it backs is a belt-and-braces read that usually catches the retry first.
Silent loss of a correctness guarantee, triggered by following the tool's advice.
What to do
Cheapest useful step is a comment in schema.prisma on the Ticket model, naming the index, saying it is intentionally raw-SQL-only, why Prisma cannot express it, and what breaks if it is dropped. A future reader hitting the drift warning then has the context at the point of decision.
Worth considering alongside:
- Whether other raw-SQL objects have the same exposure. The
Message(ticketId, responseKey)unique index on #170's branch is expressible in Prisma, so it is likely fine — worth confirming rather than assuming. - Whether a CI check should assert the index still exists, so its removal fails loudly instead of silently. A single
pg_indexesquery in a migration test would do it. - Documenting the same trap in whatever contributing/migrations guide exists, since the next partial index will hit it too.
Related: #169 proposes more partial unique indexes for the other inbound doors, which would multiply this.
- Lenguaje dominante
- TypeScript
- Estrellas
- 8
- Forks
- 4
- Merge medio
- 3 d 19 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de CopilotKit/outpost
-
area: docs area: security roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CopilotKit/outpost#277 ·
Los mantenedores suelen responder en 3 días
-
area: ai roadmap roadmap: now
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
CopilotKit/outpost#145 ·
Los mantenedores suelen responder en 3 días
-
area: integrations priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
CopilotKit/outpost#124 · 3 comentarios ·
Los mantenedores suelen responder en 3 días
-
area: integrations priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
CopilotKit/outpost#123 · 2 comentarios ·
Los mantenedores suelen responder en 3 días
-
area: infrastructure bug priority: low roadmap roadmap: later
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
CopilotKit/outpost#120 · 2 comentarios ·
Los mantenedores suelen responder en 3 días
Todos los issues de CopilotKit/outpost
Issues similares
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
inu-appcenter/memorIN-frontend#106 ·
Los mantenedores suelen responder en 1 día
-
kind/bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
Los mantenedores suelen responder en 7 días
-
[Bug] @deck.gl/arcgis dist import resolves to unpublished @deck.gl/core source path (9.3.11, 9.4.0)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
fix: CopyFilters ignores tabAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
CSCfi/sd-search-ui#145 ·
Los mantenedores suelen responder en 1 día
-
Add: Cbeebies pl SDAbiertocheck:passed streams:add
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día