diff --git a/changelog/v8.0.0+253.md b/changelog/v8.0.0+253.md new file mode 100644 index 00000000..cb5b3862 --- /dev/null +++ b/changelog/v8.0.0+253.md @@ -0,0 +1,5 @@ +- 兼容降级应用后再次更新时无法启动的场景 + +------------------------------------------------------------------------------------------ + +- Fix the issue that the app cannot be started after updating again when downgrading the app \ No newline at end of file diff --git a/lib/src/database/database.dart b/lib/src/database/database.dart index b7fbaa83..00ff8911 100644 --- a/lib/src/database/database.dart +++ b/lib/src/database/database.dart @@ -92,12 +92,6 @@ class AppDb extends _$AppDb { if (from < 4) { await m.addColumn(galleryDownloadedOld, galleryDownloadedOld.priority); } - if (from < 11) { - await m.addColumn(galleryDownloadedOld, galleryDownloadedOld.sortOrder); - await m.addColumn(galleryGroup, galleryGroup.sortOrder); - await m.addColumn(archiveDownloadedOld, archiveDownloadedOld.sortOrder); - await m.addColumn(archiveGroup, archiveGroup.sortOrder); - } if (from < 5) { await m.addColumn(galleryDownloadedOld, galleryDownloadedOld.groupName); await m.addColumn(archiveDownloadedOld, archiveDownloadedOld.groupName); @@ -119,27 +113,33 @@ class AppDb extends _$AppDb { if (from < 10) { await _deleteImageSizeColumn(m); } + if (from < 11) { + await m.addColumn(galleryDownloadedOld, galleryDownloadedOld.sortOrder); + await m.addColumn(galleryGroup, galleryGroup.sortOrder); + await m.addColumn(archiveDownloadedOld, archiveDownloadedOld.sortOrder); + await m.addColumn(archiveGroup, archiveGroup.sortOrder); + } if (from < 13) { await m.createTable(superResolutionInfo); } if (from < 14) { await m.createTable(tagCount); await m.createTable(dioCache); - await m.createIndex(idxExpireDate); - await m.createIndex(idxUrl); + await m.createIndex(idxExpireDate).ignoreDuplicateIndex(); + await m.createIndex(idxUrl).ignoreDuplicateIndex(); } if (from < 15) { await _migrateSuperResolutionInfo(m); } if (from < 16) { - await m.createIndex(idxKey); - await m.createIndex(idxTagName); + await m.createIndex(idxKey).ignoreDuplicateIndex(); + await m.createIndex(idxTagName).ignoreDuplicateIndex(); } if (from < 17) { await _migrateDownloadedInfo(m); } if (from < 18) { - await m.createIndex(idxLastReadTime); + await m.createIndex(idxLastReadTime).ignoreDuplicateIndex(); } if (from < 19) { await _migrateArchiveStatus(m);