Core Data: Fehler bei Lightweight Migration (iOS 27)

    • Core Data: Fehler bei Lightweight Migration (iOS 27)

      Moin zusammen,

      nur, weil es hier langsam dem Ende zu geht, muss ich ja nicht still sein :)

      Mich hat die Tage ein Fehler in Core Data buchstäblich stundenlang beschäftigt - unter'm Strich dann ein Lapsus bei Apple und vielleicht hier wissenswert.

      In einer "uralten" App, die gerade überarbeitet wird, habe ich eine kleine Änderung am Datenmodell vornehmen wollen: Letztlich nur das Ergänzen eines (boolean) Attributes für eine Entität. Also ein klassischer Fall für die "Light-Weight Migration", bei der man sich ja um wenig kümmern muss. Nur im CloudKit nicht vergessen, dass geänderte Schema zu provisionieren und in die Produktion zu übernehmen. Aber ich schweife ab, so weit kam es gar nicht:

      Schon im iOS 27 Simulator von Xcode wurde die App auf die Bretter geschickt:

      Quellcode

      1. CoreData: annotation: Begin entity schema & data migration statements.
      2. CoreData: annotation: Executing entity schema & data migration statement: NSSQLiteStatement <0x106e4ef80> on entity 'List' with sql text 'ALTER TABLE ZLIST ADD COLUMN ZQUERYSUMQUANTITIES INTEGER'
      3. CoreData: annotation: Executing entity schema & data migration statement: NSSQLiteStatement <0x106e4efd0> on entity '(null)' with sql text 'ALTER TABLE Z_5MATERIALS RENAME COLUMN Z_5LISTS4 TO Z_5LISTS5'
      4. no such column: "Z_5LISTS4" in "ALTER TABLE Z_5MATERIALS RENAME COLUMN Z_5LISTS4 TO Z_5LISTS5"
      Toll, damit fing die Suche an. Ich erspare Euch Details (sehr hilfreich war übrigens das Run-Argument -com.apple.CoreData.MigrationDebug 3 zum Debuggen). Irgendwann fand ich beim Recherchieren diesen Thread in den Apple-Diskussionen - fragt mich nicht, mit welchen Suchbegriffen. Und siehe da, auch bei mir funktionierte die Migration problemlos unter iOS 18 (andere Versionen habe ich nicht getestet). Interessanterweise wird dort das gleiche SQL-Statement, aber ohne Fehler abgesetzt. Für mich sieht es so aus, dass Apple hier einen Bug eingebaut hat - aber bisher konnte ich mich nicht zu einem Feedback aufraffen, vielleicht am Wochenende... (Apple's Kommunikation zu Bug-Reports ist einfach zu schlecht geworden).

      In meinem Fall bin ich das Problem "quick & dirty" umgangen: Da es nur um eine einfache "Ja / Nein"-Information ging, habe ich diese in anderen, bestehenden Attributen codiert und somit eine Datenmigration vermieden. Nicht elegant, aber effektiv - ich kann nicht monatelang auf eine fragliche Fehlerbehebung warten, zumal mir unklar ist, welche (scheinbar sehr seltene) Konstellation diesen bei mir provoziert.

      In diesem Sinne, schönes Wochenende, Mattes

      Edit: Feedback Report ist raus (FB25296814)
      Diese Seite bleibt aus technischen Gründen unbedruckt.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von MyMattes () aus folgendem Grund: Feedback Report ergänzt

    • Ich hab' auch erst überlegt, dabei mehr die Details zu erforschen, habe dann aber davon Abstand genommen: Es würde mir nicht weiterhelfen, da die Fehlerursache ausserhalb meines Einflussbereiches liegt - und "just for fun" war mir meine Zeit zu schade...
      Diese Seite bleibt aus technischen Gründen unbedruckt.