From 4d402847fc0db0b946f8595963096e6e406d8292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=85=B1=E5=A4=A9=E5=B0=8F=E7=A6=BD=E5=85=BD?= Date: Sat, 3 Aug 2024 20:03:15 +0800 Subject: [PATCH] Fix the issue that the app cannot be started after updating again when downgrading the app MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 兼容降级应用后再次更新时无法启动的场景 --- changelog/v8.0.0+253.md | 5 +++++ lib/src/database/database.dart | 22 +++++++++++----------- 2 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 changelog/v8.0.0+253.md 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);