Software /
code /
prosody-modules
Diff
mod_log_messages_sql/mod_log_messages_sql.lua @ 2407:be08b65f2855
mod_log_messages_sql: In 0.10ish, use 'messages' as default table name, override using 'log_messages_sql_table' if needed
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 02 Dec 2016 19:06:37 +0000 |
parent | 1639:398c4aaccf6d |
child | 2408:9d132153d786 |
line wrap: on
line diff
--- a/mod_log_messages_sql/mod_log_messages_sql.lua Fri Dec 02 20:02:04 2016 +0100 +++ b/mod_log_messages_sql/mod_log_messages_sql.lua Fri Dec 02 19:06:37 2016 +0000 @@ -11,12 +11,16 @@ local tostring = tostring; local time_now = os.time; + +local table_name = module:get_option("message_log_sql_table", pcall(require, "util.cache") and "messages" or "prosodyarchive"); + local sql, setsql, getsql = {}; do -- SQL stuff local connection; local resolve_relative_path = require "core.configmanager".resolve_relative_path; local params = module:get_option("message_log_sql", module:get_option("sql")); + local function test_connection() if not connection then return nil; end if connection:ping() then @@ -47,6 +51,7 @@ return connection; end + do -- process options to get a db connection local ok; prosody.unlock_globals(); @@ -138,7 +143,7 @@ local when = time_now(); -- And stash it local ok, err = setsql([[ - INSERT INTO `prosodyarchive` + INSERT INTO `]]..table_name..[[` (`host`, `user`, `store`, `when`, `with`, `resource`, `stanza`) VALUES (?, ?, ?, ?, ?, ?, ?); ]], store_host, store_user, "message_log", when, target_bare, target_resource, serialize(st.preserialize(stanza))) @@ -164,8 +169,8 @@ -- In the telnet console, run: -- >hosts["this host"].modules.mam_sql.environment.create_sql() function create_sql() - local stm = getsql[[ - CREATE TABLE `prosodyarchive` ( + local stm = getsql([[ + CREATE TABLE `]]..table_name..[[` ( `host` TEXT, `user` TEXT, `store` TEXT, @@ -175,10 +180,10 @@ `resource` TEXT, `stanza` TEXT ); - CREATE INDEX `hus` ON `prosodyarchive` (`host`, `user`, `store`); - CREATE INDEX `with` ON `prosodyarchive` (`with`); - CREATE INDEX `thetime` ON `prosodyarchive` (`when`); - ]]; + CREATE INDEX `hus` ON `]]..table_name..[[` (`host`, `user`, `store`); + CREATE INDEX `with` ON `]]..table_name..[[` (`with`); + CREATE INDEX `thetime` ON `]]..table_name..[[` (`when`); + ]]); stm:execute(); sql.commit(); end