DBLog Postgres Problem

Begonnen von volschin, 31 Juli 2019, 00:48:00

Vorheriges Thema - Nächstes Thema

mkriegl

Hallo Zusammen,

mir ist leider vor 2 Tagen scheinbar der Speicher vollgelaufen und ich habe nicht aufgepasst. Einzige Möglichkeit war dann irgendwie nur noch die Datenbank zurück zu setzen. Jetzt hänge ich leider vor dem Problem, dass ich sie nicht mehr konfiguriert bekomme. Ich hoffe mir kann jemand helfen, da ich die folgende Fehlermeldung bekomme:
DbLog logdb - DBI connect('database=fhem;host=localhost','fhem',...) failed: FATAL:  Datenbank »fhem« existiert nicht at ./FHEM/93_DbLog.pm line 3085.


Ausgeführt habe ich:
CREATE USER fhem PASSWORD 'geheim';
\i /opt/fhem/contrib/dblog/db_create_postgresql.sql


Nachträglich habe ich auch nochmal dies danach ausgeführt:
SET search_path = fhem, pg_catalog;

Leider ohne Erfolg. Mich wunder nur, dass in dem Script gar keine Datenbank angelegt wird  :) Trotzdem hoffe ich, dass jemand eine Idee hat

mkriegl

Okay, ich habe es wieder zum Laufen gebracht, aber ein paar Sachen erschließen sich mir noch nicht.

Folgendes
CREATE DATABASE fhem OWNER fhem;
\c fhem #um in die Datenbank zu gehen
\i /opt/fhem/contrib/dblog/db_create_postgresql.sql


ein zweites Ausführen des Scriptes macht natürlich keinen Sinn, sorgt aber dafür, dass die Tabellen nochmal in der neu angelegten Datenbank angelegt werden und fhem somit wieder drauf zufgreifen kann.

Ich schau mal ob man das Script umschreiben kann.

Was sich mir aber nicht erschließt ist, dass sich der SET search_path über das Script nicht aktiviert. Diesen musste ich händisch nochmal ausführen - oder wird dieser automatisch wieder zurück gesetzt?

DS_Starter

Wo hast du das verwendete Script her ?

Das offiziell in der CommandRef verlinkte Script sieht so aus:


--
-- PostgreSQL database dump
--

SET statement_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = off;
SET check_function_bodies = false;
SET client_min_messages = warning;
SET escape_string_warning = off;

--
-- Name: fhem; Type: SCHEMA; Schema: -; Owner: fhem
--

CREATE SCHEMA fhem;


ALTER SCHEMA fhem OWNER TO fhem;

--
-- Name: SCHEMA fhem; Type: COMMENT; Schema: -; Owner: fhem
--

COMMENT ON SCHEMA fhem IS 'standard fhem schema';


SET search_path = fhem, pg_catalog;

SET default_tablespace = '';

SET default_with_oids = false;

--
-- Name: current; Type: TABLE; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE TABLE current (
    "timestamp" timestamp without time zone,
    device character varying(64),
    type character varying(64),
    event character varying(512),
    reading character varying(64),
    value character varying(128),
    unit character varying(32)
);


ALTER TABLE fhem.current OWNER TO fhem;

--
-- Name: history; Type: TABLE; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE TABLE history (
    "timestamp" timestamp without time zone default CURRENT_TIMESTAMP,
    device character varying(64),
    type character varying(64),
    event character varying(512),
    reading character varying(64),
    value character varying(128),
    unit character varying(32)
);


ALTER TABLE fhem.history OWNER TO fhem;

--
-- Name: reading; Type: INDEX; Schema: fhem; Owner: fhem; Tablespace:
--

CREATE INDEX "Search_Idx" ON history USING btree (device, reading, "timestamp");

--
-- PostgreSQL database dump complete
--


Dort finde ich die von dir zitierte Sequenz nicht:


CREATE DATABASE fhem OWNER fhem;
\c fhem #um in die Datenbank zu gehen
\i /opt/fhem/contrib/dblog/db_create_postgresql.sql
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mkriegl

Genau das hatte ich zuerst verwendet. Liegt ja hier:
/opt/fhem/contrib/dblog/db_create_postgresql.sql

Allerdings meldet mir fhem dann, dass es die Datenbank nicht finden kann. Wenn ich in psql allerdings die Datenbank mit den Tabellen wie beschrieben anlege funktioniert es. In dem Script wird ein Schema angelegt. Dies kann ich aber weder finden, noch irgendwo die Tabellen. Deswegen war meine Überlegung: Wenn fhem eine Datenbank fehlt, dann gib ihm eine :)

DS_Starter

Klingt einleuchtend. Interressant dass es bisher nur diese eine Meldung mit diesem Bezug gibt wenn ich nicht irre.
Bin nicht so familiär mit Postgre ... sollte ich mir vllt. mal genauer anschauen bei Gelegenheit.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mkriegl

Ich leider auch nicht und ganz verstehe ich das vorgehen selbst nicht. Ich hatte eben nochmal versucht die Datenbank anzulegen, in die Datenbank abzuspringen und dann das Script laufen zu lassen. Tabellen werden Angezeigt, fhem meldet dann aber einen Connection Error über Localhost und den Port.
Ich bekomme beim zweiten Durchlauf des Sciptes in der Datenbank auch keine Fehlermeldung, dass die Schemas schon existieren - macht für mich so irgendwie auch keinen sinn.
Wenn du mal eine Erklärung findest und auch ein aufs erste funktionierendes Skript, bitte gerne Bescheid geben :) .. bei mir scheint es jetzt wohl zu funktionieren, aber wissenstechnisch komme ich hier nicht weiter  :P

DS_Starter

Mach ich gerne. Als ich vor langer Zeit mit der Weiterentwicklung von DbLog begonnen hatte, hab ich ich auf meiner Synology die Postgre - Testdatenbank mit diesem Script angelegt. Hat wohl auch geklappt, sonst hätte ich es wahrscheinlich angepasst.
Aber sicher bin ich mir nicht nach so langer Zeit ob ich nicht doch noch dabei nachgeholfen hatte.  ;) 
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

volschin

Mittlerweile ist man ja auch bei pgsql 13.x. Da muss man schon fragen, mit welcher Version was nicht funktioniert.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)