From 813f69fd2b4020313f5fc6de635523e681dafe38 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Thu, 15 Nov 2018 21:55:16 +0000 Subject: mod_storage_sql: Catch errors during schema upgrade (thanks Nothing4You) --- plugins/mod_storage_sql.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index cf92e31c..56cef569 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -510,12 +510,12 @@ local function upgrade_table(engine, params, apply_changes) -- luacheck: ignore if params.driver == "MySQL" then local success,err = engine:transaction(function() do - local result = engine:execute("SHOW COLUMNS FROM \"prosody\" WHERE \"Field\"='value' and \"Type\"='text'"); + local result = assert(engine:execute("SHOW COLUMNS FROM \"prosody\" WHERE \"Field\"='value' and \"Type\"='text'")); if result:rowcount() > 0 then changes = true; if apply_changes then module:log("info", "Upgrading database schema (value column size)..."); - engine:execute("ALTER TABLE \"prosody\" MODIFY COLUMN \"value\" MEDIUMTEXT"); + assert(engine:execute("ALTER TABLE \"prosody\" MODIFY COLUMN \"value\" MEDIUMTEXT")); module:log("info", "Database table automatically upgraded"); end end @@ -528,9 +528,9 @@ local function upgrade_table(engine, params, apply_changes) -- luacheck: ignore changes = true; if apply_changes then module:log("info", "Upgrading database schema (prosodyarchive_index)..."); - engine:execute[[ALTER TABLE "prosodyarchive" DROP INDEX prosodyarchive_index;]]; + assert(engine:execute[[ALTER TABLE "prosodyarchive" DROP INDEX prosodyarchive_index;]]); local new_index = sql.Index { table = "prosodyarchive", name="prosodyarchive_index", "host", "user", "store", "key" }; - engine:_create_index(new_index); + assert(engine:_create_index(new_index)); module:log("info", "Database table automatically upgraded"); end end -- cgit v1.2.3