Fix SwiftData migration crash on schema upgrades
Add = false/true defaults to all non-optional Bool properties so SwiftData's lightweight migration knows what value to assign existing rows. Replace try! ModelContainer with crash-safe do-catch that resets the store on migration failure instead of crashing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -4,11 +4,11 @@ import SwiftData
|
||||
@Model
|
||||
final class AppSettings {
|
||||
var mealWindows: String // "dinnerOnly", "lunchOnly", "both"
|
||||
var includeWeekends: Bool
|
||||
var includeWeekends: Bool = true
|
||||
var language: String // "spanish", "english"
|
||||
|
||||
var calendarId: String?
|
||||
var syncEnabled: Bool
|
||||
var syncEnabled: Bool = false
|
||||
var syncMode: String? // "weekComplete", "manual"
|
||||
var lunchTime: Date
|
||||
var dinnerTime: Date
|
||||
@@ -18,8 +18,8 @@ final class AppSettings {
|
||||
var iCloudSyncEnabled: Bool?
|
||||
var weekExportStyle: String?
|
||||
|
||||
var isPremium: Bool
|
||||
var onboardingCompleted: Bool
|
||||
var isPremium: Bool = false
|
||||
var onboardingCompleted: Bool = false
|
||||
|
||||
init() {
|
||||
self.mealWindows = "dinnerOnly"
|
||||
|
||||
@@ -8,7 +8,7 @@ final class Dish {
|
||||
var descriptionText: String?
|
||||
var tagIds: [UUID]
|
||||
var createdAt: Date
|
||||
var isPriority: Bool
|
||||
var isPriority: Bool = false
|
||||
|
||||
init(
|
||||
id: UUID = UUID(),
|
||||
|
||||
@@ -8,8 +8,8 @@ final class MealSlot {
|
||||
var mealType: String // "lunch", "dinner"
|
||||
var dishId: UUID?
|
||||
var calendarEventId: String?
|
||||
var isRuleOverridden: Bool
|
||||
var isEatingOut: Bool
|
||||
var isRuleOverridden: Bool = false
|
||||
var isEatingOut: Bool = false
|
||||
|
||||
var weekPlan: WeekPlan?
|
||||
|
||||
|
||||
@@ -8,11 +8,11 @@ final class Tag {
|
||||
var nameEN: String
|
||||
var color: String
|
||||
var maxPerWeek: Int?
|
||||
var noConsecutive: Bool
|
||||
var noDuplicateInDay: Bool
|
||||
var noConsecutive: Bool = false
|
||||
var noDuplicateInDay: Bool = false
|
||||
var mealTypeRestriction: String? // "lunch", "dinner", nil
|
||||
var dayRestriction: String? // nil = any day, "weekdays" = Mon-Fri, "weekend" = Sat-Sun
|
||||
var isDefault: Bool
|
||||
var isDefault: Bool = true
|
||||
var sortOrder: Int
|
||||
|
||||
init(
|
||||
|
||||
Reference in New Issue
Block a user