import SwiftUI import SwiftData @main struct KangkangApp: App { var sharedModelContainer: ModelContainer = { let schema = Schema([ Indicator.self, Report.self, DiaryEntry.self, Asset.self, ChatTurn.self, Symptom.self, UserProfile.self, MetricReminder.self, CustomMonitorMetric.self, HealthExport.self, ]) let config = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) do { return try ModelContainer(for: schema, configurations: [config]) } catch { // Demo 阶段 schema 仍在演进:旧 store 与新 schema 不兼容且无正式迁移时, // 自动迁移会失败导致启动崩溃。这里重置本地 store 重建(测试数据可丢)。 // ⚠️ 生产环境必须改为正式的 SwiftData 迁移方案,不能静默删数据。 print("⚠️ ModelContainer 创建失败,重置本地 store 重建: \(error)") let fm = FileManager.default let storePath = config.url.path for path in [storePath, storePath + "-wal", storePath + "-shm"] { try? fm.removeItem(atPath: path) } do { return try ModelContainer(for: schema, configurations: [config]) } catch { fatalError("Could not create ModelContainer even after reset: \(error)") } } }() var body: some Scene { WindowGroup { RootView() } .modelContainer(sharedModelContainer) } }