diff options
author | Kim Alvefur <zash@zash.se> | 2016-12-02 11:13:05 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2016-12-02 11:13:05 +0100 |
commit | 5edecf159e4a7da6a5b8edccc9766a8119f8b69c (patch) | |
tree | b8d5008111c5708e9ee236f6139e5100ccd683d2 /plugins/mod_storage_sql.lua | |
parent | 8cc205862760e879aa21ae934d62143e7f618b8a (diff) | |
parent | b505c4dd28533f117a2085a020426111411e6d88 (diff) | |
download | prosody-5edecf159e4a7da6a5b8edccc9766a8119f8b69c.tar.gz prosody-5edecf159e4a7da6a5b8edccc9766a8119f8b69c.zip |
Merge 0.10->trunk
Diffstat (limited to 'plugins/mod_storage_sql.lua')
-rw-r--r-- | plugins/mod_storage_sql.lua | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 60870a01..50d9cd0f 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -7,10 +7,8 @@ local xml_parse = require "util.xml".parse; local uuid = require "util.uuid"; local resolve_relative_path = require "util.paths".resolve_relative_path; -local stanza_mt = require"util.stanza".stanza_mt; -local getmetatable = getmetatable; +local is_stanza = require"util.stanza".is_stanza; local t_concat = table.concat; -local function is_stanza(x) return getmetatable(x) == stanza_mt; end local noop = function() end local unpack = unpack @@ -435,14 +433,22 @@ local function upgrade_table(params, apply_changes) return changes; end -local function normalize_params(params) - if params.driver == "SQLite3" then - if params.database ~= ":memory:" then - params.database = resolve_relative_path(prosody.paths.data or ".", params.database or "prosody.sqlite"); - end +local function normalize_database(driver, database) + if driver == "SQLite3" and database ~= ":memory:" then + return resolve_relative_path(prosody.paths.data or ".", database or "prosody.sqlite"); end - assert(params.driver and params.database, "Configuration error: Both the SQL driver and the database need to be specified"); - return params; + return database; +end + +local function normalize_params(params) + return { + driver = assert(params.driver, "Configuration error: Both the SQL driver and the database need to be specified"); + database = assert(normalize_database(params.driver, params.database), "Configuration error: Both the SQL driver and the database need to be specified"); + username = params.username; + password = params.password; + host = params.host; + port = params.port; + }; end function module.load() @@ -478,7 +484,7 @@ function module.command(arg) -- We need to find every unique dburi in the config local uris = {}; for host in pairs(prosody.hosts) do - local params = config.get(host, "sql") or default_params; + local params = normalize_params(config.get(host, "sql") or default_params); uris[sql.db2uri(params)] = params; end print("We will check and upgrade the following databases:\n"); @@ -498,7 +504,10 @@ function module.command(arg) upgrade_table(params, true); end print("All done!"); - else + elseif command then print("Unknown command: "..command); + else + print("Available commands:"); + print("","upgrade - Perform database upgrade"); end end |