Post

Replies

Boosts

Views

Activity

Reply to SwiftData error 134020 - "The model configuration used to open the store is incompatible with the one that was used to create the store."
Hello! I had the same issue working with SwiftData and I found that creating my own ModelContainer in App.swift instead of relying on the default one worked. // App.swift import SwiftData import SwiftUI @main struct OweApp: App { private var container: ModelContainer { try! ModelContainer( for: Lender.self, Transaction.self, configurations: .init() ) } var body: some Scene { WindowGroup { HomeView() } .modelContainer(self.container) } } And the view file that uses the modelContext environment variable: import SwiftData import SwiftUI struct HomeView: View { @Environment(\.modelContext) var modelContext @Query var lenders: [Lender] @Query var transactions: [Transaction] var body: some View { NavigationStack { List { ForEach(self.lenders) { lender in HStack { Text(lender.name) Spacer() Text("$\(lender.balanceOwed)") .font(.caption) .bold() } } .onDelete(perform: self.deleteLender) } .navigationTitle("Owe") .toolbar { ToolbarItem(placement: .topBarTrailing) { Button(action: self.addLender) { Text("New Lender") } } } } } private func addLender() { let firstNames = ["Miguel", "Salvador", "Mayra"] let lastNames = ["Aceves", "Maravillo", "Ochoa"] let lenderName = "\(firstNames.randomElement()!) \(lastNames.randomElement()!)" let lender = Lender(name: lenderName) self.modelContext.insert(lender) } private func deleteLender(offsets: IndexSet) { for offset in offsets { let lender = self.lenders[offset] self.modelContext.delete(lender) } } } #Preview { HomeView() }
Jul ’24