mirror of
https://github.com/ente-io/ente.git
synced 2025-08-12 09:10:25 +00:00
Recreate ML db
This commit is contained in:
parent
b50f8a8212
commit
95a0e80c5b
@ -1,7 +1,6 @@
|
|||||||
import { haveWindow } from "@/next/env";
|
import { haveWindow } from "@/next/env";
|
||||||
import log from "@/next/log";
|
import log from "@/next/log";
|
||||||
import {
|
import {
|
||||||
DEFAULT_ML_SEARCH_CONFIG,
|
|
||||||
DEFAULT_ML_SYNC_CONFIG,
|
DEFAULT_ML_SYNC_CONFIG,
|
||||||
DEFAULT_ML_SYNC_JOB_CONFIG,
|
DEFAULT_ML_SYNC_JOB_CONFIG,
|
||||||
MAX_ML_SYNC_ERROR_COUNT,
|
MAX_ML_SYNC_ERROR_COUNT,
|
||||||
@ -85,21 +84,16 @@ class MLIDbStorage {
|
|||||||
async upgrade(db, oldVersion, newVersion, tx) {
|
async upgrade(db, oldVersion, newVersion, tx) {
|
||||||
let wasMLSearchEnabled = false;
|
let wasMLSearchEnabled = false;
|
||||||
try {
|
try {
|
||||||
const s: unknown = await tx
|
const searchConfig: unknown = await tx
|
||||||
.objectStore("configs")
|
.objectStore("configs")
|
||||||
.getKey(ML_SEARCH_CONFIG_NAME);
|
.get(ML_SEARCH_CONFIG_NAME);
|
||||||
if (typeof s == "string") {
|
|
||||||
const json = JSON.parse(s);
|
|
||||||
if (
|
if (
|
||||||
json &&
|
searchConfig &&
|
||||||
typeof json == "object" &&
|
typeof searchConfig == "object" &&
|
||||||
"enabled" in json
|
"enabled" in searchConfig &&
|
||||||
|
typeof searchConfig.enabled == "boolean"
|
||||||
) {
|
) {
|
||||||
const enabled = json.enabled;
|
wasMLSearchEnabled = searchConfig.enabled;
|
||||||
if (typeof enabled == "boolean") {
|
|
||||||
wasMLSearchEnabled = enabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
log.error(
|
log.error(
|
||||||
@ -108,10 +102,22 @@ class MLIDbStorage {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
log.info(
|
log.info(
|
||||||
`Old database had wasMLSearchEnabled = ${wasMLSearchEnabled}`,
|
`Previous ML database v${oldVersion} had ML search ${wasMLSearchEnabled ? "enabled" : "disabled"}`,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (oldVersion < 1) {
|
// 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
|
||||||
const filesStore = db.createObjectStore("files", {
|
const filesStore = db.createObjectStore("files", {
|
||||||
keyPath: "fileId",
|
keyPath: "fileId",
|
||||||
});
|
});
|
||||||
@ -124,16 +130,14 @@ class MLIDbStorage {
|
|||||||
keyPath: "id",
|
keyPath: "id",
|
||||||
});
|
});
|
||||||
|
|
||||||
db.createObjectStore("things", {
|
// db.createObjectStore("things", {
|
||||||
keyPath: "id",
|
// keyPath: "id",
|
||||||
});
|
// });
|
||||||
|
|
||||||
db.createObjectStore("versions");
|
db.createObjectStore("versions");
|
||||||
|
|
||||||
db.createObjectStore("library");
|
db.createObjectStore("library");
|
||||||
}
|
|
||||||
if (oldVersion < 2) {
|
|
||||||
// TODO: update configs if version is updated in defaults
|
|
||||||
db.createObjectStore("configs");
|
db.createObjectStore("configs");
|
||||||
|
|
||||||
await tx
|
await tx
|
||||||
@ -142,26 +146,22 @@ class MLIDbStorage {
|
|||||||
DEFAULT_ML_SYNC_JOB_CONFIG,
|
DEFAULT_ML_SYNC_JOB_CONFIG,
|
||||||
ML_SYNC_JOB_CONFIG_NAME,
|
ML_SYNC_JOB_CONFIG_NAME,
|
||||||
);
|
);
|
||||||
|
|
||||||
await tx
|
await tx
|
||||||
.objectStore("configs")
|
.objectStore("configs")
|
||||||
.add(DEFAULT_ML_SYNC_CONFIG, ML_SYNC_CONFIG_NAME);
|
.add(DEFAULT_ML_SYNC_CONFIG, ML_SYNC_CONFIG_NAME);
|
||||||
}
|
|
||||||
if (oldVersion < 3) {
|
|
||||||
await tx
|
await tx
|
||||||
.objectStore("configs")
|
.objectStore("configs")
|
||||||
.add(DEFAULT_ML_SEARCH_CONFIG, ML_SEARCH_CONFIG_NAME);
|
.add(
|
||||||
}
|
{ enabled: wasMLSearchEnabled },
|
||||||
if (oldVersion < 4) {
|
ML_SEARCH_CONFIG_NAME,
|
||||||
// TODO(MR): This loses the user's settings.
|
);
|
||||||
db.deleteObjectStore("configs");
|
|
||||||
db.createObjectStore("configs");
|
|
||||||
|
|
||||||
db.deleteObjectStore("things");
|
|
||||||
}
|
|
||||||
|
|
||||||
log.info(
|
log.info(
|
||||||
`Ml DB upgraded to version: ${newVersion} from version: ${oldVersion}`,
|
`Ml DB upgraded to version: ${newVersion} from version: ${oldVersion}`,
|
||||||
);
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -210,11 +210,11 @@ export const cachedOrNew = async (
|
|||||||
export const clearCaches = async () =>
|
export const clearCaches = async () =>
|
||||||
isElectron() ? clearOPFSCaches() : clearWebCaches();
|
isElectron() ? clearOPFSCaches() : clearWebCaches();
|
||||||
|
|
||||||
export const clearWebCaches = async () => {
|
const clearWebCaches = async () => {
|
||||||
await Promise.all(blobCacheNames.map((name) => caches.delete(name)));
|
await Promise.all(blobCacheNames.map((name) => caches.delete(name)));
|
||||||
};
|
};
|
||||||
|
|
||||||
export const clearOPFSCaches = async () => {
|
const clearOPFSCaches = async () => {
|
||||||
const root = await navigator.storage.getDirectory();
|
const root = await navigator.storage.getDirectory();
|
||||||
await root.removeEntry("cache", { recursive: true });
|
await root.removeEntry("cache", { recursive: true });
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user