Merge branch 'storageareas' of github.com:ConnorTechnology/ZoneMinder into storageareas

pull/2077/head
Isaac 2018-01-21 21:11:28 +01:00
commit c5332a255b
11 changed files with 30 additions and 9 deletions

View File

@ -1,7 +1,7 @@
--
-- This updates a 1.29.0 database to 1.30.0
--
SELECT 'Checking for SaveJPEGs in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -16,6 +16,7 @@ SET @s = (SELECT IF(
PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'Checking for VideoWriter in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -30,6 +31,7 @@ SET @s = (SELECT IF(
PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'Checking for EncoderParameters in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -44,6 +46,7 @@ SET @s = (SELECT IF(
PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'Checking for DefaultVideo in Events';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -58,6 +61,7 @@ SET @s = (SELECT IF(
PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'Checking for RecordAudio in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS

View File

@ -3,6 +3,7 @@
--
-- Add StateId Column to Events.
--
SELECT 'Checkfor StateId IN Events';
SET @s = (SELECT IF(
(SELECT COUNT(*)

View File

@ -2,6 +2,7 @@
-- Update Filters table to have a Concurrent Column
--
SELECT 'Checking for Concurrent in Filters';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS

View File

@ -35,7 +35,7 @@ PREPARE stmt FROM @sqlstmt;
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 @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;
EXECUTE stmt;

View File

@ -2,6 +2,7 @@
-- This adds StorageAreas
--
SELECT 'Checking For Storage Table';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.TABLES
@ -24,6 +25,7 @@ EXECUTE stmt;
-- Add StorageId column to Monitors
--
SELECT 'Checking For StorageId in Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -42,6 +44,7 @@ EXECUTE stmt;
-- Add StorageId column to Eventss
--
SELECT 'Checking For StorageId in Events';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
@ -56,6 +59,7 @@ SET @s = (SELECT IF(
PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'Updating Monitors SETTING StorageId to default';
UPDATE Monitors SET StorageId = 0 WHERE StorageId IS NULL;
ALTER TABLE Monitors MODIFY `StorageId` smallint(5) unsigned NOT NULL default 0;
UPDATE Events SET StorageId = 0 WHERE StorageId IS NULL;
@ -78,6 +82,7 @@ EXECUTE stmt;
--
-- Update Monitors table to have an Index on ServerId
--
SELECT 'Create Index For ServerId on Monitors';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.STATISTICS
@ -96,6 +101,7 @@ EXECUTE stmt;
--
-- Update Server table to have an Index on Name
--
SELECT 'Create Index FOR Name on Servers';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.STATISTICS
@ -111,15 +117,19 @@ PREPARE stmt FROM @s;
EXECUTE stmt;
SELECT 'ALTER TABLE Logs MODIFY Message TEXT NOT NULL';
-- ALTER TABLE Logs ALTER Message DROP DEFAULT;
ALTER TABLE Logs MODIFY Message TEXT NOT NULL;
SELECT '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
--
SELECT 'Check for Id column in Filter';
SET @s = (SELECT IF(
(SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS

View File

@ -48,7 +48,7 @@ use vars qw/ $AUTOLOAD $log $dbh/;
*dbh = \$ZoneMinder::Database::dbh;
my $debug = 0;
use constant DEBUG_ALL=>1;
use constant DEBUG_ALL=>0;
sub new {
my ( $parent, $id, $data ) = @_;
@ -170,8 +170,6 @@ sub save {
foreach my $k ( keys %$data ) {
$log->debug("Object::save after set $k => $$data{$k} $$self{$k}");
}
} else {
$log->debug("No data after set");
}
}
#$debug = 0;

View File

@ -153,7 +153,10 @@ my $eventcounts_week_sth = $dbh->prepare_cached( $eventcounts_week_sql );
my $eventcounts_month_sth = $dbh->prepare_cached( $eventcounts_month_sql );
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_Day WHERE StartTime < DATE_SUB(NOW(), INTERVAL 1 day)');

View File

@ -932,6 +932,8 @@ sub patchDB {
my $dbh = shift;
my $version = shift;
zmDbDisconnect();
my ( $host, $portOrSocket ) = ( $Config{ZM_DB_HOST} =~ /^([^:]+)(?::(.+))?$/ );
my $command = 'mysql';
if ( defined($portOrSocket) ) {
@ -966,6 +968,8 @@ sub patchDB {
die( "Command '$command' exited with status: $status\n" );
}
print( "\nDatabase successfully upgraded to version $version.\n" );
$dbh = zmDbConnect();
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 $res = $sth->execute( $version ) or die( "Can't execute: ".$sth->errstr() );

View File

@ -1 +1 @@
1.31.25
1.31.26

View File

@ -171,7 +171,7 @@ class MonitorsController extends AppController {
$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
$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' );
}
} // end function edit

View File

@ -232,7 +232,7 @@ for( $monitor_i = 0; $monitor_i < count($displayMonitors); $monitor_i += 1 ) {
} elseif ( $monitor['Type'] == 'Ffmpeg' || $monitor['Type'] == 'Libvlc' ) {
$url_parts = parse_url( $monitor['Path'] );
$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 == '' ) {
$source = 'Monitor ' . $monitor['Id'];