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 -- 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

View File

@ -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(*)

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

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 ); 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)');

View File

@ -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() );

View File

@ -1 +1 @@
1.31.25 1.31.26

View File

@ -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

View File

@ -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'];