2017-06-19 1 views
0

Der Fehler, eine destruktive Migration auf einem synchronisierten Bereich durchzuführen, was ich gerade gelernt habe, hätte ich nicht gemäß der Anweisung der Dokumentation tun sollen. "Wenn die Migration jedoch eine destruktive Änderung vornimmt, hört das Realm auf, mit ROS zu synchronisieren , erzeugt einen fehlerhaften Änderungssatz, der einen Fehler enthält ". Der Server wird unseren Realm-Objektserver nicht neu starten und die Protokolle sagen realm-object-server dead but pid file exists. Wir können zu diesem Zeitpunkt noch nicht einmal auf ROS im Web zugreifen.Wie gehe ich mit dem Abbruch von Realm Object Server um, nachdem ich versehentlich eine Migration auf iOS durchgeführt habe (Bad changeset error)?

Gibt es einen Weg darum, ohne unsere Realm-Instanz neu zu installieren? Wenn das Ausmaß dieser Migration so stark ist, gibt es dann auch keine Möglichkeit, dem Entwickler eine Warnung zu geben?

Codebeispiel:

let config = Realm.Configuration( syncConfiguration: SyncConfiguration(user: curUser, realmURL: RealmURL.userObjects), migrationBlock: { (migration, schema) in // todo })

+0

Wie haben Sie eine destruktive Änderung vorgenommen? –

Antwort

0

Wenn Sie eine Schemaänderung durchzuführen, führt dies zu einer Operation, die von einem Realm beibehalten Betriebsprotokoll angehängt wird. Dies geschieht zuerst auf der Client-Kopie eines synchronisierten Realms und wird dann mit Realm Object Server synchronisiert. Wenn der Vorgang eine destruktive Änderung ist, sollte der Server den Vorgang einfach ablehnen und einen Fehler zurückgeben. Dies hat zur Folge, dass das Betriebsprotokoll des Servers nicht betroffen ist, der Client sich jedoch in einem Zustand befindet, in dem die Synchronisierung mit dem Server nicht fortgesetzt werden kann. In diesem Fall besteht die Lösung darin, den Client zurückzusetzen, der am einfachsten zu entwickeln ist, indem die App gelöscht und neu installiert wird.

Ihre Situation klingt jedoch wie ein anderes Problem. Die Tatsache, dass der Server nicht reagiert, bedeutet, dass etwas anderes schief gelaufen ist. Sie könnten versuchen, den Server zu entfernen und neu zu installieren, da dadurch die Daten oder die Konfiguration nicht gelöscht werden.

+0

Danke für die Antwort. Wir haben am Ende nur ROS neu gestartet. Sieht so aus, als würden sie mehr in https://github.com/realm/realm-mobile-platform/issues/223#issuecomment-312807135 nachsehen –

Verwandte Themen