From 02469e4e8eca3dd5cfd42f159175ec536300db33 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 17 Jun 2023 00:22:45 +0200 Subject: mod_storage_sql: Only remove old index if it exists Avoids an error if the upgrade is performed twice.. --- plugins/mod_storage_sql.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 3afb5d78..b339a4e9 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -859,16 +859,18 @@ local function upgrade_table(engine, params, apply_changes) -- luacheck: ignore end end end) - if apply_changes then - local success = engine:transaction(function () - return assert(engine:execute([[DROP INDEX "prosody_index";]])); - end); - if not success then - module:log("error", "Failed to delete obsolete index \"prosody_index\""); - return false; + if indices["prosody_index"] then + if apply_changes then + local success = engine:transaction(function () + return assert(engine:execute([[DROP INDEX "prosody_index";]])); + end); + if not success then + module:log("error", "Failed to delete obsolete index \"prosody_index\""); + return false; + end + else + changes = true; end - else - changes = changes or indices["prosody_index"]; end end return changes; -- cgit v1.2.3