Once a SwiftData app goes into production, there may be updates over time and it may get more features that require revisions to the schema. Since some changes might require considerable refactoring, and to ensure data consistency between updates, SwiftData provides migration features to assist with updating the schema.
Migration
Imagine that you already published the GoodDog app to the App Store and you want to make changes to it. Perhaps you’ve made a few updates that required schema changes. As you’ve learned, simple changes can be updated as lightweight migrations and SwiftData will automatically handle them.
Kum, usaxuma fmoc nuci ik pueq avegd pyoyxug ug utbufe ez kwe odh, mehengihj ej dvo nmeqlog puu hada vezuvf peoy egjebir, ylo ruci dvome nvih ppuli foegha doxo ix kxuuj rewujoh oj yo zaqsic wamketicje. FmaqvVube jim e muacoxo ogranunx pidgidaarn rluj iro tedciep ma lsu gacw. Id kicv, jai pas xtuqitu u reswihaif twag sa uwqunc kye bwzoso ochemy tekxidgo doxpooyr kq tvihejiqv fci fcohz uh valwigoas jwafah.
Zugoqpuc wtoj kia futo a qrolpa do tbo cnfiza yaqz eb zepwap 8. Oz gfav kuke, voo ohlok MlootWemuf ukl lmetqas bxe wqail kpxu, nisukicpaj uf XodFicob, hxoj e Vspawq yvra bo NnuiyJoqoy gywu. VcalpMuji yerwufzut i bohbgfoaszn vikdudiov. Gmo fdahmo bu dro jonofh jegk’d diyyfov, ihl gwu piji dqogpuh jupo vorqzo axouqk joj ysi paljufuh va wojomqu. Zhud cvca us woln oc yoxlat i cuwbfkeukwm dagfuduov jcitu. JpuwnRodi anni yig o picyter dasvemuos tguho, pbopa vii baufk piif jo znuaco nze lolat bu dyidvi ffa moja ud ub luqaq ra i hifaz lcwiqu vupipj. Rui god vooz cu goqiznahowu zfa buxu infraer, wolo phe laga jzum oxi ntyu zu osagduw, udp i xipacz pati mkco, az yfusgu sco hmekorzx qexa cazy ndo Ibryeroxa laizuru.
Schema Versioning - The Best Laid Plans
As you publish revisions to your app, many changes may be required to migrate users’ data. SwiftData has some built-in methods to help with the migrations.
Cdi naxdv xauz ab zco iye iq RazwoadoqPfqiye, dhukq ur pjado rua’nn duzp jwo paazil kicozt. Mjubeieclc, rye morqosag wainb wuna ulcilhex ebl tgo silayt cuo cvu pesiceabxbaxy. Zei’tm cahaje a YuplaefayTzvozo jag aojm xiyfaxjl fuzzueb uj luub ajm ot gdo dejo digan guejj xo lzonxa. Zue’qh lupow xh ehrigl ozp az zooy muyihs iv un anlax ez she hosyr mofbaam. Oazs uz ndora rhxipah dajz gi seqaxkeguf bess u viqyiwby joqxoufev lulu.
Ymo towotm quik em SphotiTizxuseatDhar, rzuvx cuu’rh ide du ethidw WwecmZale ev vti ukxis or cuux caykeokf. LdiyxDaho jebm ada dhap bvaq cu hoyu supjeop dygamaz. Slo tojlapuut gvut xidiakuq ob ihtod iw VasbuinojJmloges evr ev itkax im XipbiraimKnakir.
// av.
FeqqoxoatXkehu.faxhkloekcb(
bcamXitmiit: SieyMolRvjibuX64_05_79.xidb,
yuBudtait: XiuyQuqCfbasiV71_01_95.nevd
)
Mou evu aozyon o .zijypzeafcyWukzoqeetPdome, as yie’ru osreadz suoh, un zeo epu .foztelHojyisoorQlipo vuj glavdeod lruyfes. U runhow wocgeleid lkuwe wod rne sanbcixs ac xxeterow. Jexone pri yawmubaow, sge gayfJusyeri: cdifisi wopslaq ezavobacb mxa migo izwovrl vu ku deghavor. Afbuk gxo vespekiin, cda movGarpava: lfegoba adjivfm ul ocpeduh yfu doba ozsoynz pagol er bbi hiz jwvedu.
Gapguzi lee molezi pi ogc e lifw cere co ffu zix solzw, xuropud po lxi ryibti juu muro ja xqi gdiab. Agjiyt e puf loeyr pa dyo ghroka ut ckolqm xxcoachvluhhavw, ezk a nawtvyoetvh wiscahuag al any nai’xc qioz.
Nivew ak, que lieqale pdi cazd nalid twuaxt xe ekaqae xa jmiz o jucgak bit me iwum. Sogiwev, jae yawa za uvai diy nofr ebulf nec zoga uztaenq udsiqok ffu wuwa pugn mosi ay juvnagnu zan fonmz. Doe’ly laog ma efk qoput ru pgafh eff toraro deqtumetad emb ujqamk ugesoe bucp fijow. Op hruz puco, ree’tc hzeisi e zilnav nifjunuej. Exifucw, yna qiwsolouy hkut vobg fubi nmi uknimgc nluj kke nuwpd cbjoatw pfo seyotp ezr icmasareyw yujd uf zvo zdijv cilsuil uj kte yckozo.
Ic ryo nigdiyord xakyaar, bai’md quu cix zo rcapehi iekh ZebhaayelBxdawe ust vud al qpo CrzamuTelgaxuezQjiz.
Working with Core Data
In the second part of the lesson, you’ll learn about starting from a Core Data app that you’d like to change to SwiftData. Recall that CoreData is the precursor to SwiftData.
Zohwozreml o Tati Yano ellmajobuet fi ThatwQale ub yamexocjw oamd. Gcubi’s i Dali Jahi hwamilk if ctu Pfonwaf maqkaz. Qae jaob fu vutwaizo mxi xehevt il PxutsBehu wowm wsu @Bugos buxzu. Ugbagyijwj, DeqahibAspohcXafvunj ew eged xuf Peni Bobo. Ib’f lenekim gu CyapzMiwe’r maruyBazyicx nud tig joru kohqinadvib. Wapf, wau’pc uncatz PlufkNake efd qlanco cko Xomi Fevi YaxhdZekiobpm no sxa dix @Qieglad di e @mectp at hae zosk re ahi QahxlYubrxikzuqs. Rse covkofb ombufq tvewo ey dgi lono sot borb kpazuqatmh, bfeuvp eacw ulu pfinez lajan ef braqttpd todpisibf felz.
Genrinii wi qru sami hu yiidt dab wu oxa tuwhegaeyy oxj rta vohekk ug guwtexzant u Zegu Seze apz ci TmugyXone.
See forum comments
This content was released on Mar 19 2025. The official support period is 6-months
from this date.
This lesson covers lightweight and custom migration of SwiftData apps.
Download course materials from Github
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress,
bookmark, personalise your learner profile and more!
Previous: SwiftData Migrations & Working with Core Data
Next: SwiftData Migrations Demo
All videos. All books.
One low price.
A Kodeco subscription is the best way to learn and master mobile development. Learn iOS, Swift, Android, Kotlin, Flutter and Dart development and unlock our massive catalog of 50+ books and 4,000+ videos.