# HG changeset patch # User Matthew Wild # Date 1542318916 0 # Node ID 2fcf517b811e8f512dbc037d06fd88c62613e253 # Parent 4d3ab71531537207f7d747284216f9020b5d88d2 mod_storage_sql: Catch errors during schema upgrade (thanks Nothing4You) diff -r 4d3ab7153153 -r 2fcf517b811e plugins/mod_storage_sql.lua --- a/plugins/mod_storage_sql.lua Thu Nov 15 10:25:48 2018 +0000 +++ b/plugins/mod_storage_sql.lua Thu Nov 15 21:55:16 2018 +0000 @@ -510,12 +510,12 @@ 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 @@ 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