X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=UpdateDatabase.php;h=c762a48e44ca70e5f833d35ae781630055aab45e;hp=70693bb38842c8318fd536f2f587dcd937fe220c;hb=refs%2Fheads%2Fwip_edward_T5851_download_old_offer_sheet;hpb=993e29957c4f5a673682b5807345f72bbd468640 diff --git a/UpdateDatabase.php b/UpdateDatabase.php index 70693bb3..c762a48e 100644 --- a/UpdateDatabase.php +++ b/UpdateDatabase.php @@ -67,12 +67,24 @@ class Pman_Core_UpdateDatabase extends Pman 'min' => 1, 'max' => 1, ), + 'skip-email-import' => array( + 'desc' => 'Skip email import', + 'default' => '', + 'min' => 1, + 'max' => 1, + ), 'procedures-only' => array( 'desc' => 'Only import procedures (not supported by most modules yet) - ignores sql directory', 'default' => '', 'min' => 1, 'max' => 1, ), + 'disable-create-triggers' => array( + 'desc' => 'So not create the mysql triggers', + 'default' => '', + 'min' => 1, + 'max' => 1, + ), 'json-person' => array( 'desc' => 'Person JSON file', @@ -90,7 +102,7 @@ class Pman_Core_UpdateDatabase extends Pman ), ); - + static function cli_opts() { @@ -132,11 +144,26 @@ class Pman_Core_UpdateDatabase extends Pman 'test_class' => 'Pman/Admin/Report/SendEventErrors', 'to_group' => 'Administrators', 'active' => 1, - 'description' => '9. System Error Messages', + 'description' => '9.2 System Error Messages', 'template_dir' => '/Pman/Admin/templates/mail/' + ), + 'ADMIN_PASSWORD_RESET' => array( + 'bcc_group' => 'Administrators', + 'test_class' => 'Pman/Core/DataObjects/Core_person', + 'to_group' => '', + 'active' => 1, + 'description' => '9.1 Management System Password Reset', + 'template_dir' => '/Pman/Core/templates/mail/' + + ) ); + var $required_extensions = array( + 'curl', + 'gd' + ); + function getAuth() { @@ -161,7 +188,7 @@ class Pman_Core_UpdateDatabase extends Pman $this->checkSystem(); - $this->verifyExtensions(array('curl')); + $this->verifyExtensions($this->required_extensions); if (class_exists('PDO_DataObjects_Introspection')) { PDO_DataObject_Introspection::$cache = array(); @@ -193,16 +220,29 @@ class Pman_Core_UpdateDatabase extends Pman } // ask all the modules to verify the opts - echo "Checi options\n"; + echo "Checking options\n"; $this->checkOpts($opts); $response = $this->curl("http://localhost{$this->local_base_url}/Core/UpdateDatabase/VerifyExtensions"); $json = json_decode($response, true); if(empty($json['data']) || $json['data'] != 'DONE'){ - echo $response. "\n"; + echo "\nError: Missing php extensions:\n"; + print_r($response); echo "Please install the above extensions and restart the apache.\n"; - exit; + sleep(5); + + //exit; + } + + echo "Checking Setup Requirements\n"; + require_once 'Pman/Core/UpdateDatabase/VerifyConfig.php'; + $sq = new Pman_Core_UpdateDatabase_VerifyConfig(); + $ret = $sq->get($args, $opts); + + if(!empty($ret)){ + echo implode("\n", $ret) . "\n"; + sleep(30); } // do this first, so the innodb change + utf8 fixes column max sizes @@ -235,6 +275,12 @@ class Pman_Core_UpdateDatabase extends Pman $this->clearApacheDataobjectsCache(); $this->clearApacheAssetCache(); + + + + + + } function output() { @@ -829,17 +875,21 @@ class Pman_Core_UpdateDatabase extends Pman $c = DB_DataObject::Factory('core_company'); $c->selectAdd(); $c->selectAdd('distinct(comptype) as comptype'); - $c->whereAdd("comptype != ''"); + $c->whereAdd(" + comptype != '' + AND + comptype != 'undefined' + AND + comptype != 'undefine' + "); $ctb = array(); foreach($c->fetchAll('comptype') as $cts) { - - - $ctb[]= array( 'etype'=>'COMPTYPE', 'name' => $cts, 'display_name' => ucfirst(strtolower($cts))); + $ctb[]= array( 'etype'=>'COMPTYPE', 'name' => $cts, 'display_name' => ucfirst(strtolower($cts))); } - $c = DB_DataObject::Factory('core_enum'); + $c = DB_DataObject::Factory('core_enum'); $c->initEnums($ctb); //DB_DataObject::debugLevel(1); @@ -863,6 +913,9 @@ class Pman_Core_UpdateDatabase extends Pman function updateDataEmails() { + if (!empty($this->opts['skip-email-import'])) { + return; + } foreach ($this->emailTemplates as $k => $mail) { $mail_dir = "{$this->rootDir}{$mail['template_dir']}"; @@ -1042,7 +1095,9 @@ class Pman_Core_UpdateDatabase extends Pman in_array('STRICT_TRANS_TABLES', $modes) || !in_array('ALLOW_INVALID_DATES', $modes) ){ - die("Error: set sql_mode include 'ALLOW_INVALID_DATES', remove 'NO_ZERO_IN_DATE' AND 'STRICT_TRANS_TABLES' AND 'NO_ZERO_DATE' in my.cnf\n\n"); + die("Error: set sql_mode include 'ALLOW_INVALID_DATES', remove 'NO_ZERO_IN_DATE' AND 'STRICT_TRANS_TABLES' AND 'NO_ZERO_DATE' in my.cnf\n\n". + "Recommended line: \n\nsql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES\n\n" + ); } } @@ -1160,12 +1215,14 @@ class Pman_Core_UpdateDatabase extends Pman $dburl = parse_url($ff->database); $dbtype = $dburl['scheme']; - + $dbtype = ($dbtype == 'mysqli') ? 'mysql' : $dbtype; + foreach($this->extensions as $ext) { $scls = ucfirst($dbtype). $ext; $cls = __CLASS__ . '_'. $scls; $fn = implode('/',explode('_', $cls)).'.php'; + if (!file_exists(__DIR__.'/UpdateDatabase/'. $scls .'.php')) { return; } @@ -1190,7 +1247,8 @@ class Pman_Core_UpdateDatabase extends Pman 'pdftoppm', 'rsvg-convert', //librsvg2-bin 'strings', - 'oathtool' + 'oathtool', + 'gifsicle', // used for gif conversions ); @@ -1236,16 +1294,20 @@ class Pman_Core_UpdateDatabase extends Pman function clearApacheDataobjectsCache() { - echo "Clearing Database Cache\n"; + // this needs to clear it's own cache along with remote one.. + $url = "http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"; - $response = $this->curl("http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache"); + echo "Clearing Database Cache : http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache\n"; + + $response = $this->curl($url); $json = json_decode($response, true); if(empty($json['data']) || $json['data'] != 'DONE'){ - echo $response. "\n"; + echo "fetching $url\n"; + echo "GOT:" . $response. "\n"; echo "Clear DataObjects Cache failed\n"; exit; } @@ -1255,7 +1317,7 @@ class Pman_Core_UpdateDatabase extends Pman function clearApacheAssetCache() { - echo "Clearing Asset Cache\n"; + echo "Clearing Asset Cache : http://localhost{$this->local_base_url}/Core/Asset\n"; $response = $this->curl( "http://localhost{$this->local_base_url}/Core/Asset", array( '_clear_cache' => 1 ,'returnHTML' => 'NO' ), @@ -1312,7 +1374,7 @@ class Pman_Core_UpdateDatabase extends Pman foreach ($extensions as $e){ - if(extension_loaded($e)) { + if(empty($e) || extension_loaded($e)) { continue; }