[ORM] ORM always destroy my manual set indexes. (e.g. when using `pgvector`)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- postgresql, typescript
- Ambito
- databases
Direzione di ricerca
Reproduce with bun zen migrate dev --create-only after adding an Unsupported("vector(384)") field to schema.zmodel, then add manual HNSW indexes on chunks and rerun bun zen migrate dev. The payload names no source files; the work is in the migration diffing engine that compares the Prisma schema against the live PostgreSQL database and emits DROP statements, so start by locating where migrations are generated and how Unsupported fields are handled. Done means a follow-up migration leaves manually created indexes intact.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description and expected behavior
When using PostgreSQL extensions like pgvector and manually creating indexes in migrations the ORM will automatically roll back these manual changes and want to DROP these indexes.
How to reproduce?
- Add a "Unsupported" field to the schema.zmodel
- Create a index using `bun zen migrate dev --create-only"
- Add indexes manually in this migrations
- Run
bun zen migrate devto apply -> In this case the CLI automatically creates another migration which always DROPs these manual indexes (runningbun zen migrate deploymitigates this one time, but after another migrations it automatically drops all manual indexes again)
Environment (please complete the following information):
- ZenStack version: 3.8.0
- Database type: PostgreSQL
- Node.js/Bun version: Bun v1.3.14
- Package manager: Bun
Sample schema
type Vectors {
dimensions Int?
vec384 Unsupported("vector(384)")?
vec768 Unsupported("vector(768)")?
vec1024 Unsupported("vector(1024)")?
vec1536 Unsupported("vector(1536)")?
vec3072 Unsupported("halfvec(3072)")?
}
model Chunk with Vectors {
id String @id @default(uuid())
}
Manual indexes in sql
-- ============================================================
-- CHUNKS
-- ============================================================
CREATE INDEX IF NOT EXISTS idx_chunks_vec384
ON chunks USING HNSW ("vec384" vector_cosine_ops)
WITH (m = 16, ef_construction = 64);
CREATE INDEX IF NOT EXISTS idx_chunks_vec768
ON chunks USING HNSW ("vec768" vector_cosine_ops)
WITH (m = 16, ef_construction = 64);
CREATE INDEX IF NOT EXISTS idx_chunks_vec1024
ON chunks USING HNSW ("vec1024" vector_cosine_ops)
WITH (m = 16, ef_construction = 64);
CREATE INDEX IF NOT EXISTS idx_chunks_vec1536
ON chunks USING HNSW ("vec1536" vector_cosine_ops)
WITH (m = 16, ef_construction = 64);
-- halfvec braucht halfvec_cosine_ops
CREATE INDEX IF NOT EXISTS idx_chunks_vec3072
ON chunks USING HNSW ("vec3072" halfvec_cosine_ops)
WITH (m = 16, ef_construction = 64);
- Lingua principale
- TypeScript
- Stelle
- 2.9k
- Fork
- 157
- Merge medio
- 11h 42m
- PR unite (30g)
- 20
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di zenstackhq/zenstack
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
zenstackhq/zenstack#2873 ·
I maintainer di solito rispondono entro 1 giorno
-
runtime
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
zenstackhq/zenstack#2868 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
zenstackhq/zenstack#2694 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 68/100
zenstackhq/zenstack#2659 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
zenstackhq/zenstack#2542 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di zenstackhq/zenstack
Issue simili
-
[bug] diagnostics.dumpBody:Buffer 形态请求(透传 lane)跳过 dumps/ 落盘,仅留 raw/-unknown-Forse già presa @ranxianglei l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
ranxianglei/billion-context#2421 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
platformatic/mcp#216 ·
I maintainer di solito rispondono entro 1 giorno
-
pending triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
nuxt/test-utils#1842 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
MoonshotAI/kimi-code#4146 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
farbenmeer/tapi#531 ·