diff --git a/A00_Common/b_asset_cache.ts b/A00_Common/b_asset_cache.ts index 487e6bce..2b9cc584 100644 --- a/A00_Common/b_asset_cache.ts +++ b/A00_Common/b_asset_cache.ts @@ -13,7 +13,9 @@ import { API_BASE_URL } from "@config/config_frontend"; import { fetchConfirmedSurface } from "../B04_wf1_Surface/B04_wf1_Surface_Api_Fetch"; const DB_NAME = "aislo-asset-cache"; -const DB_VERSION = 1; +// 담아 둔 자료의 형식이나 내용이 바뀌면 이 번호를 올린다 — 올리면 기존 보관분을 통째로 버린다. +// v2: 도엽 표시용 사본(잘라낸 자료)을 철회했다. 그 사본을 담고 있던 브라우저는 비워야 한다. +const DB_VERSION = 2; const STORE = "assets"; export interface CachedAsset { @@ -38,10 +40,10 @@ function openDatabase(): Promise { const request = window.indexedDB.open(DB_NAME, DB_VERSION); request.onupgradeneeded = () => { const db = request.result; - if (!db.objectStoreNames.contains(STORE)) { - const store = db.createObjectStore(STORE, { keyPath: "key" }); - store.createIndex("projectId", "projectId", { unique: false }); - } + // 번호가 올라가면 옛 보관분은 형식이나 내용이 다를 수 있으므로 통째로 버리고 새로 만든다. + if (db.objectStoreNames.contains(STORE)) db.deleteObjectStore(STORE); + const store = db.createObjectStore(STORE, { keyPath: "key" }); + store.createIndex("projectId", "projectId", { unique: false }); }; request.onsuccess = () => resolve(request.result); // 사생활 보호 모드 등으로 열리지 않으면 보관함 없이 동작한다(항상 새로 받는다).