'min' => 1,
'max' => 1,
),
+ 'skip-mysql-checks' => array(
+ 'desc' => 'Skip mysql checks',
+ 'default' => '',
+ 'min' => 1,
+ 'max' => 1,
+ ),
'procedures-only' => array(
'desc' => 'Only import procedures (not supported by most modules yet) - ignores sql directory',
'default' => '',
var $cli = false;
+
+ var $local_base_url = false;
+
function getAuth() {
$this->checkSystem();
+ if (class_exists('PDO_DataObjects_Introspection')) {
+ PDO_DataObject_Introspection::$cache = array();
+ }
HTML_FlexyFramework::get()->generateDataobjectsCache(true);
$ff = HTML_FlexyFramework::get();
+ if(!isset($ff->Pman) || !isset($ff->Pman['local_base_url'])){
+ die("Please setup local_base_url");
+ }
+
+ $this->local_base_url = $ff->Pman['local_base_url'];
+
if(!empty($ff->Core_Notify)){
// require_once 'Pman/Core/NotifySmtpCheck.php';
// $x = new Pman_Core_NotifySmtpCheck();
$this->runUpdateModulesData();
-
if (!empty($opts['add-company']) && !in_array('Core', $this->disabled)) {
// make sure we have a good cache...?
}
$this->runExtensions();
-
+
+ $this->generateDataobjectsCache();
+
}
function output() {
$this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/sql");
$this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}");
-
+
if (!empty($this->opts['init']) && file_exists($this->rootDir. "/Pman/$m/{$dbtype}.initdata")) {
+ if (class_exists('PDO_DataObjects_Introspection')) {
+ PDO_DataObject_Introspection::$cache = array();
+ }
HTML_FlexyFramework::get()->generateDataobjectsCache(true);
$this->{$dirmethod}($dburl, $this->rootDir. "/Pman/$m/{$dbtype}.initdata");
}
+
}
function runUpdateModulesData()
{
+ if (class_exists('PDO_DataObjects_Introspection')) {
+ PDO_DataObject_Introspection::$cache = array();
+ }
HTML_FlexyFramework::get()->generateDataobjectsCache(true);
if(!in_array('Core', $this->disabled)){
echo "Running jsonImportFromArray\n";
Pman_Core_UpdateDatabase::jsonImportFromArray($this->opts);
-
+
echo "Running updateData on modules\n";
// runs core...
echo "$module\n";
$x->updateData();
}
-
+
}
function updateData()
{
// fill i18n data..
+ if (class_exists('PDO_DataObjects_Introspection')) {
+ PDO_DataObject_Introspection::$cache = array();
+ }
HTML_FlexyFramework::get()->generateDataobjectsCache(true);
$this->updateDataEnums();
$this->updateDataGroups();
if ($done_check) {
return;
}
+
+
+ if (!empty($this->opts['skip-mysql-checks'])) {
+ return;
+ }
// innodb in single files is far more efficient that MYD or one big innodb file.
// first check if database is using this format.
$db = DB_DataObject::factory('core_enum');
$db->query("show variables like 'innodb_file_per_table'");
$db->fetch();
if ($db->Value == 'OFF') {
- die("Error: set innodb_file_per_table = 1 in my.cnf\n\n");
+ die("Error: set innodb_file_per_table = 1 in my.cnf (or run with --skip-mysql-checks\n\n");
}
$db = DB_DataObject::factory('core_enum');
}
+ function generateDataobjectsCache()
+ {
+ $url = "http://localhost{$this->local_base_url}/Core/RefreshDatabaseCache";
+
+ $this->curl($url);
+
+ }
+
+ function curl($url, $request = array(), $method = 'GET')
+ {
+ if($method == 'GET'){
+ $request = http_build_query($request);
+ $url = $url . "?" . $request;
+ }
+
+ $ch = curl_init($url);
+
+ if ($method == 'POST') {
+
+ curl_setopt($ch, CURLOPT_POST, 1);
+ curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
+
+ } else {
+
+ curl_setopt($ch, CURLOPT_HTTPHEADER,
+ array("Content-Type: application/x-www-form-urlencoded", "Content-Length: " . strlen($request)));
+
+ }
+
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+
+ curl_setopt($ch, CURLOPT_HEADER, false);
+ curl_setopt($ch, CURLOPT_VERBOSE, 0);
+ curl_setopt($ch, CURLOPT_TIMEOUT, 30);
+ curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+
+ $response = curl_exec($ch);
+
+ curl_close($ch);
+
+ return $response;
+ }
+
+
}
\ No newline at end of file