2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-03 16:56:54 +00:00

configDB.pm: debug version

git-svn-id: https://svn.fhem.de/fhem/trunk@25843 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
betateilchen 2022-03-15 08:49:58 +00:00
parent 690632693c
commit ae7e33c0cb

View File

@ -1,6 +1,5 @@
# $Id$
=for comment (License)
##############################################################################
@ -177,6 +176,8 @@
# 2022-02-20 - added statefile versioning - begin
# 2022-03-03 statefile versioning - completed
#
# 2022-03-14 - fixed statefile problems with POSTGRESQL
#
##############################################################################
=cut
@ -351,7 +352,7 @@ sub cfgDB_Init {
}
# create TABLE fhemstate if nonexistent
# $fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemstate(stateString TEXT)");
$fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemstate(stateString TEXT)");
# create TABLE fhemb64filesave if nonexistent
if($cfgDB_dbtype eq "MYSQL") {
@ -443,7 +444,7 @@ sub cfgDB_FileUpdate {
return;
}
# read and execute fhemconfig and fhemstate
# read and execute fhemconfig and statefile
sub cfgDB_ReadAll { ## prototype used in fhem.pl
my ($cl) = @_;
my ($ret, @dbconfig);
@ -808,7 +809,7 @@ sub _cfgDB_ReadState {
my $stateFileName = $configDB{loaded}.".fhem.save";
my ($err,@state) = cfgDB_FileRead($stateFileName);
if ($err eq "") {
Log 4, "configDB read state ".$stateFileName;
Log 4, "configDB read state ".$stateFileName;
map { my $a = $_; $a =~ s/\$xyz\$/\\n/g; push @dbconfig, $a } @state;
my $fhem_dbh = _cfgDB_Connect;
$fhem_dbh->do("delete from fhemstate");
@ -1289,15 +1290,22 @@ sub _cfgDB_deleteStatefiles {
my $sth = $fhem_dbh->prepare( "SELECT filename FROM fhemb64filesave where filename like '%.fhem.save'" );
$sth->execute();
while ($filename = $sth->fetchrow_array()) {
Log 1, "file: >$filename<";
if (length($filename) > 42) { # malformed filename from postgresql
Log 1, "del1 >$filename<";
# $fhem_dbh->do("delete from fhemb64filesave where filename = '$filename'");
next;
}
my $uuid = "";
$uuid = substr($filename,0,32);
my $found = $fhem_dbh->selectrow_array("SELECT versionuuid FROM fhemversions WHERE versionuuid = '$uuid'");
$found //= -1; # to prevent perl warning
Log 1, "file: >$filename<";
Log 1, "uuid: >$uuid<";
my $found = $fhem_dbh->selectrow_array("SELECT versionuuid FROM fhemversions WHERE versionuuid = '$uuid'");
$found //= 'notfound'; # to prevent perl warning
Log 1, "found: >$found<";
$found = substr($found,0,32);
Log 1, "found: >$found<";
unless ($uuid eq $found) {
Log 1, "del >$filename<";
Log 1, "del2 >$filename<";
# $fhem_dbh->do("delete from fhemb64filesave where filename = '$filename'");
}
}