Skip to content

Commit 76700d6

Browse files
Merge pull request #3771 from nextcloud/migrationSchema
Migration schema
2 parents 415abfa + 1a9964b commit 76700d6

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

Nextcloud.xcodeproj/project.pbxproj

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5322,6 +5322,7 @@
53225322
EXTENSION_NOTIFICATION_SERVICE,
53235323
);
53245324
INFOPLIST_FILE = "$(SRCROOT)/Brand/Notification_Service_Extension.plist";
5325+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
53255326
OTHER_LDFLAGS = "";
53265327
PRODUCT_BUNDLE_IDENTIFIER = "it.twsweb.Nextcloud.Notification-Service-Extension";
53275328
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5346,6 +5347,7 @@
53465347
EXTENSION_NOTIFICATION_SERVICE,
53475348
);
53485349
INFOPLIST_FILE = "$(SRCROOT)/Brand/Notification_Service_Extension.plist";
5350+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
53495351
OTHER_LDFLAGS = "";
53505352
PRODUCT_BUNDLE_IDENTIFIER = "it.twsweb.Nextcloud.Notification-Service-Extension";
53515353
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5605,6 +5607,7 @@
56055607
);
56065608
INFOPLIST_FILE = "$(SRCROOT)/Brand/File_Provider_Extension_UI.plist";
56075609
INFOPLIST_KEY_CFBundleDisplayName = "File Provider Extension UI";
5610+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
56085611
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
56095612
MTL_FAST_MATH = YES;
56105613
OTHER_LDFLAGS = "";
@@ -5631,6 +5634,7 @@
56315634
);
56325635
INFOPLIST_FILE = "$(SRCROOT)/Brand/File_Provider_Extension_UI.plist";
56335636
INFOPLIST_KEY_CFBundleDisplayName = "File Provider Extension UI";
5637+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
56345638
MTL_ENABLE_DEBUG_INFO = NO;
56355639
MTL_FAST_MATH = YES;
56365640
OTHER_LDFLAGS = "";
@@ -5656,6 +5660,7 @@
56565660
EXTENSION_SHARE,
56575661
);
56585662
INFOPLIST_FILE = "$(SRCROOT)/Brand/Share.plist";
5663+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
56595664
OTHER_LDFLAGS = "";
56605665
PRODUCT_BUNDLE_IDENTIFIER = it.twsweb.Nextcloud.Share;
56615666
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5680,6 +5685,7 @@
56805685
EXTENSION_SHARE,
56815686
);
56825687
INFOPLIST_FILE = "$(SRCROOT)/Brand/Share.plist";
5688+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
56835689
OTHER_LDFLAGS = "";
56845690
PRODUCT_BUNDLE_IDENTIFIER = it.twsweb.Nextcloud.Share;
56855691
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5711,6 +5717,7 @@
57115717
GENERATE_INFOPLIST_FILE = YES;
57125718
INFOPLIST_FILE = "$(SRCROOT)/Brand/Widget.plist";
57135719
INFOPLIST_KEY_CFBundleDisplayName = Nextcloud;
5720+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
57145721
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
57155722
MTL_FAST_MATH = YES;
57165723
OTHER_LDFLAGS = "";
@@ -5745,6 +5752,7 @@
57455752
GENERATE_INFOPLIST_FILE = YES;
57465753
INFOPLIST_FILE = "$(SRCROOT)/Brand/Widget.plist";
57475754
INFOPLIST_KEY_CFBundleDisplayName = Nextcloud;
5755+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
57485756
MTL_ENABLE_DEBUG_INFO = NO;
57495757
MTL_FAST_MATH = YES;
57505758
OTHER_LDFLAGS = "";
@@ -5773,6 +5781,7 @@
57735781
EXTENSION_FILE_PROVIDER_EXTENSION,
57745782
);
57755783
INFOPLIST_FILE = "$(SRCROOT)/Brand/File_Provider_Extension.plist";
5784+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
57765785
OTHER_LDFLAGS = "";
57775786
PRODUCT_BUNDLE_IDENTIFIER = "it.twsweb.Nextcloud.File-Provider-Extension";
57785787
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5796,6 +5805,7 @@
57965805
EXTENSION_FILE_PROVIDER_EXTENSION,
57975806
);
57985807
INFOPLIST_FILE = "$(SRCROOT)/Brand/File_Provider_Extension.plist";
5808+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
57995809
OTHER_LDFLAGS = "";
58005810
PRODUCT_BUNDLE_IDENTIFIER = "it.twsweb.Nextcloud.File-Provider-Extension";
58015811
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -5878,6 +5888,7 @@
58785888
GENERATE_INFOPLIST_FILE = YES;
58795889
INFOPLIST_FILE = "$(SRCROOT)/Brand/WidgetDashboardIntentHandler.plist";
58805890
INFOPLIST_KEY_CFBundleDisplayName = WidgetDashboardIntentHandler;
5891+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
58815892
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
58825893
MTL_FAST_MATH = YES;
58835894
OTHER_LDFLAGS = "";
@@ -5918,6 +5929,7 @@
59185929
GENERATE_INFOPLIST_FILE = YES;
59195930
INFOPLIST_FILE = "$(SRCROOT)/Brand/WidgetDashboardIntentHandler.plist";
59205931
INFOPLIST_KEY_CFBundleDisplayName = WidgetDashboardIntentHandler;
5932+
IPHONEOS_DEPLOYMENT_TARGET = 17.0;
59215933
MTL_ENABLE_DEBUG_INFO = NO;
59225934
MTL_FAST_MATH = YES;
59235935
OTHER_LDFLAGS = "";
@@ -5962,7 +5974,7 @@
59625974
CLANG_WARN_UNREACHABLE_CODE = YES;
59635975
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
59645976
COPY_PHASE_STRIP = NO;
5965-
CURRENT_PROJECT_VERSION = 0;
5977+
CURRENT_PROJECT_VERSION = 1;
59665978
DEBUG_INFORMATION_FORMAT = dwarf;
59675979
DEVELOPMENT_TEAM = NKUJUXUJ3B;
59685980
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -6028,7 +6040,7 @@
60286040
CLANG_WARN_UNREACHABLE_CODE = YES;
60296041
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
60306042
COPY_PHASE_STRIP = NO;
6031-
CURRENT_PROJECT_VERSION = 0;
6043+
CURRENT_PROJECT_VERSION = 1;
60326044
DEVELOPMENT_TEAM = NKUJUXUJ3B;
60336045
ENABLE_STRICT_OBJC_MSGSEND = YES;
60346046
ENABLE_TESTABILITY = YES;

iOSClient/Data/NCManageDatabase.swift

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,33 +197,45 @@ final class NCManageDatabase: @unchecked Sendable {
197197
}
198198

199199
func migrationSchema(_ migration: Migration, _ oldSchemaVersion: UInt64) {
200+
//
200201
// MANUAL MIGRATIONS (custom logic required)
202+
//
203+
201204
if oldSchemaVersion < 365 {
202205
migration.deleteData(forType: tableMetadata.className())
203206
migration.enumerateObjects(ofType: tableDirectory.className()) { _, newObject in
204207
newObject?["etag"] = ""
205208
}
206209
}
210+
207211
if oldSchemaVersion < 383 {
208212
migration.enumerateObjects(ofType: tableAccount.className()) { oldObject, newObject in
209-
if let oldDate = oldObject?["autoUploadSinceDate"] as? Date {
213+
if let schema = oldObject?.objectSchema,
214+
schema["autoUploadSinceDate"] != nil,
215+
let oldDate = oldObject?["autoUploadSinceDate"] as? Date {
210216
newObject?["autoUploadOnlyNewSinceDate"] = oldDate
211217
} else {
212218
newObject?["autoUploadOnlyNewSinceDate"] = Date()
213219
}
214220
newObject?["autoUploadOnlyNew"] = true
215221
}
216222
}
223+
217224
if oldSchemaVersion < 390 {
218225
migration.enumerateObjects(ofType: tableCapabilities.className()) { oldObject, newObject in
219-
if let oldData = oldObject?["jsondata"] as? Data {
226+
if let schema = oldObject?.objectSchema,
227+
schema["jsondata"] != nil,
228+
let oldData = oldObject?["jsondata"] as? Data {
220229
newObject?["capabilities"] = oldData
221230
}
222231
}
223232
}
233+
224234
if oldSchemaVersion < 393 {
225235
migration.enumerateObjects(ofType: tableMetadata.className()) { oldObject, newObject in
226-
if let oldData = oldObject?["serveUrlFileName"] as? String {
236+
if let schema = oldObject?.objectSchema,
237+
schema["serveUrlFileName"] != nil,
238+
let oldData = oldObject?["serveUrlFileName"] as? String {
227239
newObject?["serverUrlFileName"] = oldData
228240
}
229241
}

0 commit comments

Comments
 (0)