1740e3947S猫头猫import {getAppMeta, setAppMeta} from '@/core/appMeta.ts'; 2740e3947S猫头猫import {getStorage as oldGetStorage} from '@/utils/storage'; 3740e3947S猫头猫import storage from '@/core/musicSheet/storage.ts'; 4740e3947S猫头猫import AsyncStorage from '@react-native-async-storage/async-storage'; 5740e3947S猫头猫 6740e3947S猫头猫export default async function migrate() { 7740e3947S猫头猫 const dbUpdated = +(getAppMeta('MusicSheetVersion') || '0') > 1; 8740e3947S猫头猫 if (dbUpdated) { 9740e3947S猫头猫 return; 10740e3947S猫头猫 } 11740e3947S猫头猫 try { 12740e3947S猫头猫 // 原来的musicSheets 13740e3947S猫头猫 const musicSheets: IMusic.IMusicSheetItemBase[] = await oldGetStorage( 14740e3947S猫头猫 'music-sheets', 15740e3947S猫头猫 ); 16740e3947S猫头猫 if (!musicSheets) { 17740e3947S猫头猫 setAppMeta('MusicSheetVersion', '1'); 18740e3947S猫头猫 return; 19740e3947S猫头猫 } 20740e3947S猫头猫 21740e3947S猫头猫 await storage.setSheets(musicSheets); 22740e3947S猫头猫 await AsyncStorage.removeItem('music-sheets'); 23740e3947S猫头猫 for (let sheet of musicSheets) { 24740e3947S猫头猫 const musicList = await oldGetStorage(sheet.id); 25740e3947S猫头猫 await storage.setMusicList(sheet.id, musicList); 26740e3947S猫头猫 await AsyncStorage.removeItem(sheet.id); 27740e3947S猫头猫 } 28740e3947S猫头猫 setAppMeta('MusicSheetVersion', '1'); 29740e3947S猫头猫 } catch (e) { 30740e3947S猫头猫 console.warn('升级失败', e); 31740e3947S猫头猫 } 32740e3947S猫头猫} 33740e3947S猫头猫 34740e3947S猫头猫export const migrateV2 = { 35740e3947S猫头猫 migrate(sheetId: string, musicItems: IMusic.IMusicItem[]) { 36740e3947S猫头猫 const dbUpdated = getAppMeta('MusicSheetVersion') === '2'; 37740e3947S猫头猫 if (dbUpdated) { 38740e3947S猫头猫 return; 39740e3947S猫头猫 } 40740e3947S猫头猫 let dirty = false; 41740e3947S猫头猫 const now = Date.now(); 42740e3947S猫头猫 musicItems.forEach((it, index) => { 43740e3947S猫头猫 if (!it.$timestamp || it.$sortIndex === undefined) { 44740e3947S猫头猫 it.$timestamp = now; 45*adf41771S猫头猫 it.$sortIndex = index; 46740e3947S猫头猫 dirty = true; 47740e3947S猫头猫 } 48740e3947S猫头猫 }); 49740e3947S猫头猫 if (dirty) { 50740e3947S猫头猫 storage.setMusicList(sheetId, musicItems); 51740e3947S猫头猫 } 52740e3947S猫头猫 }, 53740e3947S猫头猫 done() { 54740e3947S猫头猫 setAppMeta('MusicSheetVersion', '2'); 55740e3947S猫头猫 }, 56740e3947S猫头猫}; 57