Merge branch 'storageareas' of github.com:ConnorTechnology/ZoneMinder into storageareas
commit
c5332a255b
|
@ -1,7 +1,7 @@
|
||||||
--
|
--
|
||||||
-- This updates a 1.29.0 database to 1.30.0
|
-- This updates a 1.29.0 database to 1.30.0
|
||||||
--
|
--
|
||||||
|
SELECT 'Checking for SaveJPEGs in Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -16,6 +16,7 @@ SET @s = (SELECT IF(
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SELECT 'Checking for VideoWriter in Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -30,6 +31,7 @@ SET @s = (SELECT IF(
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SELECT 'Checking for EncoderParameters in Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -44,6 +46,7 @@ SET @s = (SELECT IF(
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SELECT 'Checking for DefaultVideo in Events';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -58,6 +61,7 @@ SET @s = (SELECT IF(
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SELECT 'Checking for RecordAudio in Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
--
|
--
|
||||||
-- Add StateId Column to Events.
|
-- Add StateId Column to Events.
|
||||||
--
|
--
|
||||||
|
SELECT 'Checkfor StateId IN Events';
|
||||||
|
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
-- Update Filters table to have a Concurrent Column
|
-- Update Filters table to have a Concurrent Column
|
||||||
--
|
--
|
||||||
|
|
||||||
|
SELECT 'Checking for Concurrent in Filters';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
|
|
@ -35,7 +35,7 @@ PREPARE stmt FROM @sqlstmt;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
set @exist := (select count(*) from information_schema.statistics where table_name = 'Events_Week' and index_name = 'Events_Week_MonitorId_idx' and table_schema = database());
|
set @exist := (select count(*) from information_schema.statistics where table_name = 'Events_Week' and index_name = 'Events_Week_MonitorId_idx' and table_schema = database());
|
||||||
set @sqlstmt := if( @exist > 0, "SELECT 'Events_Week_MonitorId_idx INDEX already exists.'", "CREATE INDEX `Events_Week_MonitorId_idx` ON `Events_Day` (`MonitorId`)");
|
set @sqlstmt := if( @exist > 0, "SELECT 'Events_Week_MonitorId_idx INDEX already exists.'", "CREATE INDEX `Events_Week_MonitorId_idx` ON `Events_Week` (`MonitorId`)");
|
||||||
PREPARE stmt FROM @sqlstmt;
|
PREPARE stmt FROM @sqlstmt;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
-- This adds StorageAreas
|
-- This adds StorageAreas
|
||||||
--
|
--
|
||||||
|
|
||||||
|
SELECT 'Checking For Storage Table';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.TABLES
|
FROM INFORMATION_SCHEMA.TABLES
|
||||||
|
@ -24,6 +25,7 @@ EXECUTE stmt;
|
||||||
-- Add StorageId column to Monitors
|
-- Add StorageId column to Monitors
|
||||||
--
|
--
|
||||||
|
|
||||||
|
SELECT 'Checking For StorageId in Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -42,6 +44,7 @@ EXECUTE stmt;
|
||||||
-- Add StorageId column to Eventss
|
-- Add StorageId column to Eventss
|
||||||
--
|
--
|
||||||
|
|
||||||
|
SELECT 'Checking For StorageId in Events';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
@ -56,6 +59,7 @@ SET @s = (SELECT IF(
|
||||||
PREPARE stmt FROM @s;
|
PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
SELECT 'Updating Monitors SETTING StorageId to default';
|
||||||
UPDATE Monitors SET StorageId = 0 WHERE StorageId IS NULL;
|
UPDATE Monitors SET StorageId = 0 WHERE StorageId IS NULL;
|
||||||
ALTER TABLE Monitors MODIFY `StorageId` smallint(5) unsigned NOT NULL default 0;
|
ALTER TABLE Monitors MODIFY `StorageId` smallint(5) unsigned NOT NULL default 0;
|
||||||
UPDATE Events SET StorageId = 0 WHERE StorageId IS NULL;
|
UPDATE Events SET StorageId = 0 WHERE StorageId IS NULL;
|
||||||
|
@ -78,6 +82,7 @@ EXECUTE stmt;
|
||||||
--
|
--
|
||||||
-- Update Monitors table to have an Index on ServerId
|
-- Update Monitors table to have an Index on ServerId
|
||||||
--
|
--
|
||||||
|
SELECT 'Create Index For ServerId on Monitors';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.STATISTICS
|
FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
@ -96,6 +101,7 @@ EXECUTE stmt;
|
||||||
--
|
--
|
||||||
-- Update Server table to have an Index on Name
|
-- Update Server table to have an Index on Name
|
||||||
--
|
--
|
||||||
|
SELECT 'Create Index FOR Name on Servers';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.STATISTICS
|
FROM INFORMATION_SCHEMA.STATISTICS
|
||||||
|
@ -111,15 +117,19 @@ PREPARE stmt FROM @s;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|
||||||
|
|
||||||
|
SELECT 'ALTER TABLE Logs MODIFY Message TEXT NOT NULL';
|
||||||
-- ALTER TABLE Logs ALTER Message DROP DEFAULT;
|
-- ALTER TABLE Logs ALTER Message DROP DEFAULT;
|
||||||
ALTER TABLE Logs MODIFY Message TEXT NOT NULL;
|
ALTER TABLE Logs MODIFY Message TEXT NOT NULL;
|
||||||
|
|
||||||
|
SELECT 'ALTER TABLE Config MODIFY DefaultValue TEXT';
|
||||||
ALTER TABLE Config MODIFY DefaultValue TEXT;
|
ALTER TABLE Config MODIFY DefaultValue TEXT;
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Add an Id column and make it the primary key of the Filters table
|
-- Add an Id column and make it the primary key of the Filters table
|
||||||
--
|
--
|
||||||
|
|
||||||
|
SELECT 'Check for Id column in Filter';
|
||||||
SET @s = (SELECT IF(
|
SET @s = (SELECT IF(
|
||||||
(SELECT COUNT(*)
|
(SELECT COUNT(*)
|
||||||
FROM INFORMATION_SCHEMA.COLUMNS
|
FROM INFORMATION_SCHEMA.COLUMNS
|
||||||
|
|
|
@ -48,7 +48,7 @@ use vars qw/ $AUTOLOAD $log $dbh/;
|
||||||
*dbh = \$ZoneMinder::Database::dbh;
|
*dbh = \$ZoneMinder::Database::dbh;
|
||||||
|
|
||||||
my $debug = 0;
|
my $debug = 0;
|
||||||
use constant DEBUG_ALL=>1;
|
use constant DEBUG_ALL=>0;
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ( $parent, $id, $data ) = @_;
|
my ( $parent, $id, $data ) = @_;
|
||||||
|
@ -170,8 +170,6 @@ sub save {
|
||||||
foreach my $k ( keys %$data ) {
|
foreach my $k ( keys %$data ) {
|
||||||
$log->debug("Object::save after set $k => $$data{$k} $$self{$k}");
|
$log->debug("Object::save after set $k => $$data{$k} $$self{$k}");
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
$log->debug("No data after set");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#$debug = 0;
|
#$debug = 0;
|
||||||
|
|
|
@ -153,7 +153,10 @@ my $eventcounts_week_sth = $dbh->prepare_cached( $eventcounts_week_sql );
|
||||||
my $eventcounts_month_sth = $dbh->prepare_cached( $eventcounts_month_sql );
|
my $eventcounts_month_sth = $dbh->prepare_cached( $eventcounts_month_sql );
|
||||||
|
|
||||||
while( 1 ) {
|
while( 1 ) {
|
||||||
$dbh->ping();
|
while ( ! ( $dbh and $dbh->ping() ) ) {
|
||||||
|
Info("Reconnecting to db");
|
||||||
|
$dbh = zmDbConnect();
|
||||||
|
}
|
||||||
|
|
||||||
$dbh->do('DELETE FROM Events_Hour WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 hour)');
|
$dbh->do('DELETE FROM Events_Hour WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 hour)');
|
||||||
$dbh->do('DELETE FROM Events_Day WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 day)');
|
$dbh->do('DELETE FROM Events_Day WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 day)');
|
||||||
|
|
|
@ -932,6 +932,8 @@ sub patchDB {
|
||||||
my $dbh = shift;
|
my $dbh = shift;
|
||||||
my $version = shift;
|
my $version = shift;
|
||||||
|
|
||||||
|
zmDbDisconnect();
|
||||||
|
|
||||||
my ( $host, $portOrSocket ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
my ( $host, $portOrSocket ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
|
||||||
my $command = 'mysql';
|
my $command = 'mysql';
|
||||||
if ( defined($portOrSocket) ) {
|
if ( defined($portOrSocket) ) {
|
||||||
|
@ -966,6 +968,8 @@ sub patchDB {
|
||||||
die( "Command '$command' exited with status: $status\n" );
|
die( "Command '$command' exited with status: $status\n" );
|
||||||
}
|
}
|
||||||
print( "\nDatabase successfully upgraded to version $version.\n" );
|
print( "\nDatabase successfully upgraded to version $version.\n" );
|
||||||
|
|
||||||
|
$dbh = zmDbConnect();
|
||||||
my $sql = "update Config set Value = ? where Name = 'ZM_DYN_DB_VERSION'";
|
my $sql = "update Config set Value = ? where Name = 'ZM_DYN_DB_VERSION'";
|
||||||
my $sth = $dbh->prepare_cached( $sql ) or die( "Can't prepare '$sql': ".$dbh->errstr() );
|
my $sth = $dbh->prepare_cached( $sql ) or die( "Can't prepare '$sql': ".$dbh->errstr() );
|
||||||
my $res = $sth->execute( $version ) or die( "Can't execute: ".$sth->errstr() );
|
my $res = $sth->execute( $version ) or die( "Can't execute: ".$sth->errstr() );
|
||||||
|
|
|
@ -171,7 +171,7 @@ class MonitorsController extends AppController {
|
||||||
$func = $Monitor['Function'];
|
$func = $Monitor['Function'];
|
||||||
// We don't pass the request data as the monitor object because it may be a subset of the full monitor array
|
// We don't pass the request data as the monitor object because it may be a subset of the full monitor array
|
||||||
$this->daemonControl( $this->Monitor->id, 'stop' );
|
$this->daemonControl( $this->Monitor->id, 'stop' );
|
||||||
if ( ( $func != 'None' ) and ( $Monitor['ServerId'] == ZM_SERVER_ID ) ) {
|
if ( ( $func != 'None' ) and ( (!defined('ZM_SERVER_ID']) or ($Monitor['ServerId']==ZM_SERVER_ID) ) ) {
|
||||||
$this->daemonControl( $this->Monitor->id, 'start' );
|
$this->daemonControl( $this->Monitor->id, 'start' );
|
||||||
}
|
}
|
||||||
} // end function edit
|
} // end function edit
|
||||||
|
|
|
@ -232,7 +232,7 @@ for( $monitor_i = 0; $monitor_i < count($displayMonitors); $monitor_i += 1 ) {
|
||||||
} elseif ( $monitor['Type'] == 'Ffmpeg' || $monitor['Type'] == 'Libvlc' ) {
|
} elseif ( $monitor['Type'] == 'Ffmpeg' || $monitor['Type'] == 'Libvlc' ) {
|
||||||
$url_parts = parse_url( $monitor['Path'] );
|
$url_parts = parse_url( $monitor['Path'] );
|
||||||
$source = $url_parts['host']. (
|
$source = $url_parts['host']. (
|
||||||
( $url_parts['port'] and ( $url_parts['port'] != '554' and $url_parts['port'] != '80' ) ) ? ':'.$url_parts['port'] : '' );
|
( isset($url_parts['port']) and ( $url_parts['port'] != '554' and $url_parts['port'] != '80' ) ) ? ':'.$url_parts['port'] : '' );
|
||||||
}
|
}
|
||||||
if ( $source == '' ) {
|
if ( $source == '' ) {
|
||||||
$source = 'Monitor ' . $monitor['Id'];
|
$source = 'Monitor ' . $monitor['Id'];
|
||||||
|
|
Loading…
Reference in New Issue