Revert "Recreate ML db"

This partially reverts commit 95a0e80c5b.
This commit is contained in:
Manav Rathi 2024-04-13 12:56:21 +05:30
parent 95a0e80c5b
commit 0f3b28a425
No known key found for this signature in database

View file

@ -1,6 +1,7 @@
import { haveWindow } from "@/next/env";
import log from "@/next/log";
import {
DEFAULT_ML_SEARCH_CONFIG,
DEFAULT_ML_SYNC_CONFIG,
DEFAULT_ML_SYNC_JOB_CONFIG,
MAX_ML_SYNC_ERROR_COUNT,
@ -84,16 +85,21 @@ class MLIDbStorage {
async upgrade(db, oldVersion, newVersion, tx) {
let wasMLSearchEnabled = false;
try {
const searchConfig: unknown = await tx
const s: unknown = await tx
.objectStore("configs")
.get(ML_SEARCH_CONFIG_NAME);
if (
searchConfig &&
typeof searchConfig == "object" &&
"enabled" in searchConfig &&
typeof searchConfig.enabled == "boolean"
) {
wasMLSearchEnabled = searchConfig.enabled;
.getKey(ML_SEARCH_CONFIG_NAME);
if (typeof s == "string") {
const json = JSON.parse(s);
if (
json &&
typeof json == "object" &&
"enabled" in json
) {
const enabled = json.enabled;
if (typeof enabled == "boolean") {
wasMLSearchEnabled = enabled;
}
}
}
} catch (e) {
log.error(
@ -102,22 +108,10 @@ class MLIDbStorage {
);
}
log.info(
`Previous ML database v${oldVersion} had ML search ${wasMLSearchEnabled ? "enabled" : "disabled"}`,
`Old database had wasMLSearchEnabled = ${wasMLSearchEnabled}`,
);
// If the user is migrating from a pre-v4 version, delete
// everything and recreate. The only thing that we migrate in
// such cases is whether or not the ML search was enabled.
if (oldVersion < 4) {
// Delete everything in the IndexedDB
db.deleteObjectStore("files");
db.deleteObjectStore("people");
db.deleteObjectStore("things");
db.deleteObjectStore("versions");
db.deleteObjectStore("library");
db.deleteObjectStore("configs");
// Recreate
if (oldVersion < 1) {
const filesStore = db.createObjectStore("files", {
keyPath: "fileId",
});
@ -130,14 +124,16 @@ class MLIDbStorage {
keyPath: "id",
});
// db.createObjectStore("things", {
// keyPath: "id",
// });
db.createObjectStore("things", {
keyPath: "id",
});
db.createObjectStore("versions");
db.createObjectStore("library");
}
if (oldVersion < 2) {
// TODO: update configs if version is updated in defaults
db.createObjectStore("configs");
await tx
@ -146,22 +142,26 @@ class MLIDbStorage {
DEFAULT_ML_SYNC_JOB_CONFIG,
ML_SYNC_JOB_CONFIG_NAME,
);
await tx
.objectStore("configs")
.add(DEFAULT_ML_SYNC_CONFIG, ML_SYNC_CONFIG_NAME);
}
if (oldVersion < 3) {
await tx
.objectStore("configs")
.add(
{ enabled: wasMLSearchEnabled },
ML_SEARCH_CONFIG_NAME,
);
log.info(
`Ml DB upgraded to version: ${newVersion} from version: ${oldVersion}`,
);
.add(DEFAULT_ML_SEARCH_CONFIG, ML_SEARCH_CONFIG_NAME);
}
if (oldVersion < 4) {
// TODO(MR): This loses the user's settings.
db.deleteObjectStore("configs");
db.createObjectStore("configs");
db.deleteObjectStore("things");
}
log.info(
`Ml DB upgraded to version: ${newVersion} from version: ${oldVersion}`,
);
},
});
}