core/storagemanager.lua
changeset 6955 db085e55555f
parent 6814 82350a06df6e
parent 6954 99de8f30d99e
child 7160 0890a428a99b
--- a/core/storagemanager.lua	Thu Nov 26 00:19:31 2015 +0000
+++ b/core/storagemanager.lua	Thu Dec 03 14:59:55 2015 +0000
@@ -57,8 +57,28 @@
 	return stores_available:get(host, driver_name);
 end
 
+local function get_storage_config(host)
+	-- COMPAT w/ unreleased Prosody 0.10 and the once-experimental mod_storage_sql2 in peoples' config files
+	local storage_config = config.get(host, "storage");
+	local found_sql2;
+	if storage_config == "sql2" then
+		storage_config, found_sql2 = "sql", true;
+	elseif type(storage_config) == "table" then
+		for store_name, driver_name in pairs(storage_config) do
+			if driver_name == "sql2" then
+				storage_config[store_name] = "sql";
+				found_sql2 = true;
+			end
+		end
+	end
+	if found_sql2 then
+		log("error", "The temporary 'sql2' storage module has now been renamed to 'sql', please update your config file: https://prosody.im/doc/modules/mod_storage_sql2");
+	end
+	return storage_config;
+end
+
 local function get_driver(host, store)
-	local storage = config.get(host, "storage");
+	local storage = get_storage_config(host);
 	local driver_name;
 	local option_type = type(storage);
 	if option_type == "string" then
@@ -130,7 +150,7 @@
 end
 
 local function purge(user, host)
-	local storage = config.get(host, "storage");
+	local storage = get_storage_config(host);
 	if type(storage) == "table" then
 		-- multiple storage backends in use that we need to purge
 		local purged = {};