configDB: add support for mariadb drivers
git-svn-id: https://svn.fhem.de/fhem/trunk@29761 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
@@ -248,6 +248,8 @@ sub _cfgDB_readConfig() {
|
|||||||
$cfgDB_dbtype ="POSTGRESQL";
|
$cfgDB_dbtype ="POSTGRESQL";
|
||||||
} elsif ($cfgDB_dbconn =~ m/mysql:/i) {
|
} elsif ($cfgDB_dbconn =~ m/mysql:/i) {
|
||||||
$cfgDB_dbtype = "MYSQL";
|
$cfgDB_dbtype = "MYSQL";
|
||||||
|
} elsif ($cfgDB_dbconn =~ m/mariadb:/i) {
|
||||||
|
$cfgDB_dbtype = "MARIADB";
|
||||||
} elsif ($cfgDB_dbconn =~ m/sqlite:/i) {
|
} elsif ($cfgDB_dbconn =~ m/sqlite:/i) {
|
||||||
$cfgDB_dbtype = "SQLITE";
|
$cfgDB_dbtype = "SQLITE";
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -245,6 +245,7 @@ sub _cfgDB_dump;
|
|||||||
sub _cfgDB_knownAttr;
|
sub _cfgDB_knownAttr;
|
||||||
sub _cfgDB_deleteRF;
|
sub _cfgDB_deleteRF;
|
||||||
sub _cfgDB_deleteStatefiles;
|
sub _cfgDB_deleteStatefiles;
|
||||||
|
sub _cfgDB_isMysqlType;
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
# Read configuration file for DB connection
|
# Read configuration file for DB connection
|
||||||
@@ -297,6 +298,8 @@ if($cfgDB_dbconn =~ m/pg:/i) {
|
|||||||
$cfgDB_dbtype ="POSTGRESQL";
|
$cfgDB_dbtype ="POSTGRESQL";
|
||||||
} elsif ($cfgDB_dbconn =~ m/mysql:/i) {
|
} elsif ($cfgDB_dbconn =~ m/mysql:/i) {
|
||||||
$cfgDB_dbtype = "MYSQL";
|
$cfgDB_dbtype = "MYSQL";
|
||||||
|
} elsif ($cfgDB_dbconn =~ m/mariadb:/i) {
|
||||||
|
$cfgDB_dbtype = "MARIADB";
|
||||||
} elsif ($cfgDB_dbconn =~ m/sqlite:/i) {
|
} elsif ($cfgDB_dbconn =~ m/sqlite:/i) {
|
||||||
$cfgDB_dbtype = "SQLITE";
|
$cfgDB_dbtype = "SQLITE";
|
||||||
(undef,$cfgDB_filename) = split(/=/,$cfgDB_dbconn);
|
(undef,$cfgDB_filename) = split(/=/,$cfgDB_dbconn);
|
||||||
@@ -364,7 +367,8 @@ sub cfgDB_Init {
|
|||||||
$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
|
# create TABLE fhemb64filesave if nonexistent
|
||||||
if($cfgDB_dbtype eq "MYSQL") {
|
# if($cfgDB_dbtype eq "MYSQL") {
|
||||||
|
if(_cfgDB_isMysqlType($cfgDB_dbtype)) {
|
||||||
$fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemb64filesave(filename TEXT, content MEDIUMBLOB)");
|
$fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemb64filesave(filename TEXT, content MEDIUMBLOB)");
|
||||||
} elsif ($cfgDB_dbtype eq "POSTGRESQL") {
|
} elsif ($cfgDB_dbtype eq "POSTGRESQL") {
|
||||||
$fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemb64filesave(filename TEXT, content bytea)");
|
$fhem_dbh->do("CREATE TABLE IF NOT EXISTS fhemb64filesave(filename TEXT, content bytea)");
|
||||||
@@ -1231,7 +1235,8 @@ sub _cfgDB_dump {
|
|||||||
$ret = qx($dumpcmd);
|
$ret = qx($dumpcmd);
|
||||||
return $ret if $ret; # return error message if available
|
return $ret if $ret; # return error message if available
|
||||||
|
|
||||||
} elsif ($dbtype eq 'MYSQL') {
|
# } elsif ($dbtype eq 'MYSQL') {
|
||||||
|
} elsif (_cfgDB_isMysqlType($dbtype)) {
|
||||||
($dbname,$dbhostname,$dbport) = split (/;/,$dbconn);
|
($dbname,$dbhostname,$dbport) = split (/;/,$dbconn);
|
||||||
$dbport //= '=3306';
|
$dbport //= '=3306';
|
||||||
(undef,$dbname) = split (/=/,$dbname);
|
(undef,$dbname) = split (/=/,$dbname);
|
||||||
@@ -1334,6 +1339,10 @@ sub _cfgDB_deleteStatefiles {
|
|||||||
$fhem_dbh->disconnect();
|
$fhem_dbh->disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub _cfgDB_isMysqlType {
|
||||||
|
my $type = shift();
|
||||||
|
return ($type eq 'MYSQL' || $type eq 'MARIADB');
|
||||||
|
}
|
||||||
##################################################
|
##################################################
|
||||||
# functions used for file handling
|
# functions used for file handling
|
||||||
# called by 98_configdb.pm
|
# called by 98_configdb.pm
|
||||||
|
|||||||
Reference in New Issue
Block a user