Database migration schema
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Inizia leggendo il percorso di migrazione di Appwrite CLI e il modo in cui vengono applicate le modifiche a appwrite.config.json. Riproduci un aggiornamento dello schema e un push in più passaggi non riuscito per comprendere il comportamento attuale. Il lavoro è completato quando i dati esistenti sopravvivono alle modifiche degli attributi e una migrazione CLI non riuscita ripristina l’ultimo schema funzionante.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
🔖 Enhancement description
- Non-destructive / Seamless schema migrations: Changing an attribute (like its type or format) should not drop the column and wipe existing data.
- Atomic rollbacks: If an error occurs while applying schema changes via the CLI, the process should roll back to the last working state entirely, rather than leaving the database schema in a broken or partially updated state.
🎤 Pitch
In my opinion, the current “migration” via the Appwrite CLI and “appwrite.config.json” isn't really a migration at all.
The biggest problem: A single change to an existing attribute automatically leads to data loss, which is extremely critical in a production environment. And having to write a separate script for something like this isn’t worth the effort for such a basic task, in my opinion.
While this might be acceptable for side projects or early MVP stages, it becomes a massive deal-breaker when deciding whether to scale a SaaS product with Appwrite.
Furthermore, the lack of atomic rollbacks means if a CLI push fails halfway through, the schema doesn't revert to its last known good configuration, it simply breaks, leaving the database in an inconsistent state.
Feel free to correct me if I'm wrong.
👀 Have you spent some time to check if this issue has been raised before?
- I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- I have read the Code of Conduct
- Lingua principale
- Go
- Stelle
- 103
- Fork
- 45
- Merge medio
- 7h 40m
- PR unite (30g)
- 4
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 appwrite/sdk-for-cli
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
appwrite/sdk-for-cli#324 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
appwrite/sdk-for-cli#282 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 68/100
appwrite/sdk-for-cli#363 · 1 reazione ·
-
TypeScript enumsAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
appwrite/sdk-for-cli#277 ·
-
During deployment, the packaging command did not exclude the ignore files.Forse di nuovo libera @ChiragAgg5k l’ha presa 231 giorni fa e non c’è nessuna pull request aperta. Aperta
appwrite/sdk-for-cli#250 · 1 assegnatario ·
Tutte le issue di appwrite/sdk-for-cli
Issue simili
-
state:triage-needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
puppe1990/amarra-cais#342 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
tier:1-mechanical
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
krakenhavoc/cmd_and_ctrl#3278 ·
I maintainer di solito rispondono entro 1 giorno