Diff

util/sqlite3.lua @ 12872:a20923f7d5fd

mod_storage_sql: Record connection to database as module status Allows retrieving this in e.g. a health reporting module Thanks pfak
author Kim Alvefur <zash@zash.se>
date Mon, 30 Jan 2023 00:38:26 +0100
parent 12848:ccb030d988ac
child 12975:d10957394a3c
line wrap: on
line diff
--- a/util/sqlite3.lua	Mon Jan 30 00:14:50 2023 +0100
+++ b/util/sqlite3.lua	Mon Jan 30 00:38:26 2023 +0100
@@ -159,6 +159,9 @@
 function engine:onconnect()
 	-- Override from create_engine()
 end
+function engine:ondisconnect() -- luacheck: ignore 212/self
+	-- Override from create_engine()
+end
 function engine:execute(sql, ...)
 	local success, err = self:connect();
 	if not success then return success, err; end
@@ -322,6 +325,7 @@
 		local conn = self.conn;
 		if not conn or not conn:isopen() then
 			self.conn = nil;
+			self:ondisconnect();
 			ok, ret = self:_transaction(...);
 		end
 	end
@@ -389,9 +393,9 @@
 	};
 end
 
-local function create_engine(_, params, onconnect)
+local function create_engine(_, params, onconnect, ondisconnect)
 	assert(params.driver == "SQLite3", "Only SQLite3 is supported without LuaDBI");
-	return setmetatable({ url = db2uri(params), params = params, onconnect = onconnect }, engine_mt);
+	return setmetatable({ url = db2uri(params); params = params; onconnect = onconnect; ondisconnect = ondisconnect }, engine_mt);
 end
 
 return {