Datenmodell ändern: $ARGUMENTS
Gespeicherte Daten befinden sich in JSON-Dateien, die bereits auf den Maschinen von Teammitgliedern und auf dem Server existieren, daher muss jede Änderung alte Dateien lesen, ohne sie zu beschädigen.
Schritte
- Lesen Sie
src/lib/links/schema.ts,src/lib/links/store.tsunddata/seed.json. - Entscheiden Sie, ob die Änderung additiv (neues optionales Feld mit Standardwert) oder bahnbrechend (Umbenennung, Entfernung, neues Pflichtfeld, Typänderung) ist.
- Additiv: Fügen Sie das Feld mit
.optional()oder.default(...)zulinkSchemahinzu, und zulinkInputSchema, wenn Benutzer es setzen können. Keine Versionserhöhung. - Bahnbrechend: Erhöhen Sie das
version-Literal der Datendatei (z. B.1→2). Behalten Sie das alte Schema alsdataFileV1Schemaund fügen Sie eineupgradeV1toV2(data)-Funktion instore.tshinzu, dieload()anwendet, wenn es eine v1-Datei liest. Überschreiben Sie niemals Dateien beim Lesen; der nächstesave()schreibt v2.
- Additiv: Fügen Sie das Feld mit
- Aktualisieren Sie
data/seed.jsonauf die neue Form. - Aktualisieren Sie die Benutzeroberfläche nur, wenn die Aufgabe dies verlangt.
- Tests in
src/lib/links/store.test.ts:- Das neue Feld durchläuft
createLinkundlistLinks. - Bei bahnbrechenden Änderungen: Schreiben Sie eine v1-Datei in den temporären Datenpfad und stellen Sie sicher, dass
listLinks()aktualisierte Links zurückgibt, und dass ein folgendescreateLinkeine v2-Datei speichert.
- Das neue Feld durchläuft
- Führen Sie
npm run checkundnpm run buildaus. - Geben Sie in Ihrer Zusammenfassung an, ob die Änderung additiv oder bahnbrechend war und was mit vorhandenen Datendateien passiert.