Upgrade db, add foreign key for download label

This commit is contained in:
FooIbar authored and tarsin committed 2023-07-21 06:19:10 +08:00
1 parent 1c38dbaa0b
commit 29e3e876c7
5 files changed
+454 -9

No files matched your search

+1 -1
View File
@@ -247,8 +247,8 @@ object EhDB {
context.deleteDatabase(ehExportName)
} use { newDb ->
db.galleryDao().list().let { newDb.galleryDao().insertOrIgnore(it) }
db.downloadsDao().list().let { newDb.downloadsDao().insert(it) }
db.downloadLabelDao().list().let { newDb.downloadLabelDao().insert(it) }
db.downloadsDao().list().let { newDb.downloadsDao().insert(it) }
db.downloadDirnameDao().list().let { newDb.downloadDirnameDao().insert(it) }
db.historyDao().list().let { newDb.historyDao().insertOrIgnore(it) }
db.quickSearchDao().list().let { newDb.quickSearchDao().insert(it) }
@@ -108,8 +108,8 @@ class ThumbKeyMigration : AutoMigrationSpec {
}
@Database(
entities = [BaseGalleryInfo::class, DownloadEntity::class, DownloadLabel::class, DownloadDirname::class, Filter::class, HistoryInfo::class, LocalFavoriteInfo::class, QuickSearch::class],
version = 15,
entities = [BaseGalleryInfo::class, DownloadLabel::class, DownloadEntity::class, DownloadDirname::class, Filter::class, HistoryInfo::class, LocalFavoriteInfo::class, QuickSearch::class],
version = 16,
exportSchema = true,
autoMigrations = [
AutoMigration(
@@ -163,6 +163,10 @@ class ThumbKeyMigration : AutoMigrationSpec {
from = 14,
to = 15,
),
AutoMigration(
from = 15,
to = 16,
),
],
)
@TypeConverters(FilterModeConverter::class)
@@ -12,7 +12,19 @@ import com.hippo.ehviewer.client.data.BaseGalleryInfo
import com.hippo.ehviewer.client.data.GalleryInfo
import java.time.Instant
@Entity(tableName = "DOWNLOADS", foreignKeys = [ForeignKey(BaseGalleryInfo::class, ["GID"], ["GID"])])
@Entity(
tableName = "DOWNLOADS",
foreignKeys = [
ForeignKey(BaseGalleryInfo::class, ["GID"], ["GID"]),
ForeignKey(
DownloadLabel::class,
["LABEL"],
["LABEL"],
onDelete = ForeignKey.SET_NULL,
onUpdate = ForeignKey.CASCADE,
),
],
)
class DownloadEntity(
@PrimaryKey
@ColumnInfo(name = "GID")
@@ -27,7 +39,7 @@ class DownloadEntity(
@ColumnInfo(name = "TIME")
override var time: Long = Instant.now().toEpochMilli(),
@ColumnInfo(name = "LABEL")
@ColumnInfo(name = "LABEL", index = true)
override var label: String? = null,
@ColumnInfo(name = "POSITION")
@@ -708,8 +708,6 @@ object DownloadManager : OnSpiderListener {
// Update info label
for (info in list) {
info.label = to
// Update in DB
EhDB.putDownloadInfo(info)
}
// Put list back with new label
map[to] = list
@@ -736,8 +734,6 @@ object DownloadManager : OnSpiderListener {
// Update info label
for (info in list) {
info.label = null
// Update in DB
EhDB.putDownloadInfo(info)
defaultInfoList.add(info)
}