Skipped migration should be marked as done

This commit is contained in:
Kacper Donat 2020-01-28 22:10:48 +01:00
parent 4761d7a44c
commit 4bbae18d54

View File

@ -13,7 +13,11 @@ const migrations: Migration[] = [
{ {
name: "202001261540_full_stop_in_state", name: "202001261540_full_stop_in_state",
key: "vuex", key: "vuex",
skip: state => !state || !state.favourites || !state.favourites.favourites, skip: state =>
!state
|| !state.favourites
|| !state.favourites.favourites
|| state.favourites.favourites.length == 0,
up: async state => { up: async state => {
const current = state.favourites.favourites; const current = state.favourites.favourites;
@ -48,9 +52,13 @@ export async function migrate(key: string) {
const result = await migrations const result = await migrations
.filter(migration => migration.key == key) .filter(migration => migration.key == key)
.filter(migration => !current.includes(migration.name)) .filter(migration => !current.includes(migration.name))
.filter(migration => !migration.skip || !migration.skip(state))
.reduce(async (state, migration) => { .reduce(async (state, migration) => {
current.push(migration.name); current.push(migration.name);
if (migration.skip && migration.skip(state)) {
return state;
}
return await migration.up(state) return await migration.up(state)
}, state); }, state);