2015-10-27 6 views
5

Wie würde ich tatsächlich eine Anwendung implementieren, die auf Bildern basierende Persistenz verwendet? Hier ist mein Szenario: Ich schreibe ein CMS in Smalltalk. In diesem Fall werden Daten meistens gelesen, selten geschrieben. Jedes Mal, wenn jemand Daten schreibt, kann ich einen Schnappschuss des Bildes machen. Aber wie würde ich eine neue Version meiner App einführen und den Status der laufenden App übernehmen? Benötige ich nicht eine andere Form der Serialisierung/Datenpersistenz als das Bild? DankeSmalltalk/Pharo-Bild basierte Persistenz - Wie zu implementieren?

Antwort

1

Der einfachste Weg ist, einfach eine neue Version mit Monticello einzuziehen.

Das sollte sich nicht auf Ihre vorhandenen Daten auswirken, außer Sie haben die Form von Klassen geändert (z. B. Entfernen oder Umbenennen von Instvars). In diesen Fällen benötigen Sie unabhängig von Ihrem Persistenzmechanismus eine Migrationsstrategie .

Und natürlich, wenn Sie Ihr Bild vor der Aktualisierung Snapshot, dann Rollback ist einfach.

1

In Pier3 können wir einfach die CMS-Daten in Code konvertieren und schreiben Sie dies als ein Monticello-Paket. Wir können Inhalte in ein lokales Pier-Image schreiben, commit und git die neue Version auf den Server in der Cloud schieben. Dort führen wir eine einfache Schleife aus, die das git-Verzeichnis abfragt, um eine neue Version zu finden und sie zu laden.