aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_storage_sql.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2011-06-11 02:17:11 +0100
committerMatthew Wild <mwild1@gmail.com>2011-06-11 02:17:11 +0100
commitd6a4ddca74f7f875f39f48c22318bdcfc3ed6d40 (patch)
tree70bd28066f6e58fb747f43a482ae58e569a84b9e /plugins/mod_storage_sql.lua
parent9882dde3a2fa5eb7bc3cd1ceddc584dbe22b0a97 (diff)
parent8ec24c7bf7bb143b106babeba5371f85c461f6d2 (diff)
downloadprosody-d6a4ddca74f7f875f39f48c22318bdcfc3ed6d40.tar.gz
prosody-d6a4ddca74f7f875f39f48c22318bdcfc3ed6d40.zip
Merge 0.8->trunk
Diffstat (limited to 'plugins/mod_storage_sql.lua')
-rw-r--r--plugins/mod_storage_sql.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua
index 055d6599..6a2d36f1 100644
--- a/plugins/mod_storage_sql.lua
+++ b/plugins/mod_storage_sql.lua
@@ -65,6 +65,9 @@ local function connect()
end
local function create_table()
+ if not module:get_option("sql_manage_tables", true) then
+ return;
+ end
local create_sql = "CREATE TABLE `prosody` (`host` TEXT, `user` TEXT, `store` TEXT, `key` TEXT, `type` TEXT, `value` TEXT);";
if params.driver == "PostgreSQL" then
create_sql = create_sql:gsub("`", "\"");
@@ -72,7 +75,7 @@ local function create_table()
create_sql = create_sql:gsub("`value` TEXT", "`value` MEDIUMTEXT");
end
- local stmt = connection:prepare(create_sql);
+ local stmt, err = connection:prepare(create_sql);
if stmt then
local ok = stmt:execute();
local commit_ok = connection:commit();
@@ -100,18 +103,25 @@ local function create_table()
local commit_ok = connection:commit();
if ok and commit_ok then
if stmt:rowcount() > 0 then
+ module:log("info", "Upgrading database schema...");
local stmt = connection:prepare("ALTER TABLE prosody MODIFY COLUMN `value` MEDIUMTEXT");
- local ok = stmt:execute();
+ local ok, err = stmt:execute();
local commit_ok = connection:commit();
if ok and commit_ok then
module:log("info", "Database table automatically upgraded");
+ else
+ module:log("error", "Failed to upgrade database schema (%s), please see "
+ .."http://prosody.im/doc/mysql for help",
+ err or "unknown error");
end
end
repeat until not stmt:fetch();
- else
- module:log("error", "Failed to upgrade database schema, please see http://prosody.im/doc/mysql for help");
end
end
+ elseif params.driver ~= "SQLite3" then -- SQLite normally fails to prepare for existing table
+ module:log("warn", "Prosody was not able to automatically check/create the database table (%s), "
+ .."see http://prosody.im/doc/modules/mod_storage_sql#table_management for help.",
+ err or "unknown error");
end
end