Frage

Ich habe ein Datenmodell, bei dem es eine Person entität gibt, die ein transformierbares Attribut hat, bei dem es sich um eine Reihe von Wörterbüchern handelt, die Informationen enthalten. Das Modell ist viel größer als das, dies ist nur der Teil, mit dem ich Probleme habe. Es wurde auf diese Weise von einem alten Entwickler konzipiert, und als ich das Projekt übernehme, muss ich diese zu 100% Kerndaten migrieren.

Ich muss also eine neue Entität erstellen, dann jedes Wörterbuch in das Array der Person durchlaufen und neue Instanzen dieser Entität mit den Informationen aus diesem Wörterbuch erstellen. Ich dachte, ich könnte eine NSentityMigrationPolicy verwenden, um eine benutzerdefinierte Migration für diese neue Entität einzurichten, aber es scheint, dass die Kerndatenmigration die x -Anzahl von Quellentitäten erwartet, dass sie in die Anzahl der Zieleinheiten umgesetzt werden. Da ich momentan technisch 0 Quellentitäten habe (weil sie in einem Array sind, von dem Kerndaten nichts wirklich wissen), bin ich mir nicht sicher, wie ich die Migration während des Prozesses neue Entitäten schaffen kann.

Was, oder eher wo im Migrationsverfahren, ist der beste Weg, um das zu tun, was ich zu erreichen versuche? Ich habe in der Vergangenheit immer leichte Migration verwendet, also ist dies mein erstes Abenteuer in der benutzerdefinierten Migration.

War es hilfreich?

Lösung

Es würde helfen, ein Gefühl für Ihr Datenmodell (Schema) (Schema) zu haben. Nehmen wir jedoch an, dass Ihre Person jetzt die Wohnadresse und Liste der bevorzugten Restaurants hat. Nehmen wir weiter an, dass Sie zusammen mit den folgenden Beziehungen neue Unternehmen ansprechen und ein Restaurant erstellen:

Die Person hat eine Adresse, daher gibt es eine to-ein-Beziehung von Person zu einer Ansprache "Homeaddress". Es gibt eine umgekehrte Beziehung, die von der Adresse zur Person umgekehrt ist, weil viele Menschen an derselben Adresse leben könnten.

Person hat eine to-vielen-Beziehung (genannt Restaurants) zu Restaurants. Das Restaurant könnte auch eine to-viele-Beziehung zur Person haben (obwohl dies einer der Fälle sein könnte, in denen die Bidirektionalität nicht wirklich Sinn macht).

Wie auch immer, jetzt ist es jetzt, dass Sie zusätzlich zu Ihrer Personaltoperson NSentityMigrationPolicy -Unterklasse auch PersonToaddress und PersonTorestaurant haben. Dies sind die Orte, an denen Sie die alten Daten auspacken und diese verwenden, um neue Adressen und Restaurantobjekte zu instanziieren und zu initialisieren.

Natürlich gibt es viele andere komplizierende Probleme. Sie möchten beispielsweise keine neue Instanz desselben Restaurants für jede Person erstellen, die es mag. Sie müssen neu erstellte Restaurants im Auge behalten.

Sie möchten Ihre Zuordnungen strategisch bestellen - wahrscheinlich zuerst mit Personaltoperson.

Vielleicht möchten Sie sich die Kerndaten von Marcus Zarra ansehen Beispielcode Und vielleicht sogar sein Buch kaufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top