DataObjects/Core_watch.php
[Pman.Core] / UpdateDatabase.php
index 3be126f..c359c68 100644 (file)
@@ -44,7 +44,7 @@ class Pman_Core_UpdateDatabase extends Pman
         'add-company-with-type' => array(
             'desc' => 'the type of company (default OWNER)',
             'short' => 't',
-            'default' => '',
+            'default' => 'OWNER',
             'min' => 1,
             'max' => 1,
         ),
@@ -61,6 +61,13 @@ class Pman_Core_UpdateDatabase extends Pman
             '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,
+        ),
+        
         
         'json-person' => array(
             'desc' => 'Person JSON file',
@@ -125,7 +132,7 @@ class Pman_Core_UpdateDatabase extends Pman
         PEAR::setErrorHandling(PEAR_ERROR_CALLBACK, array($this, 'onPearError'));
    
         
-        $this->fixSequencesPgsql();exit;
+        //$this->fixSequencesPgsql();exit;
         $this->opts = $opts;
         
         // ask all the modules to verify the opts
@@ -145,6 +152,8 @@ class Pman_Core_UpdateDatabase extends Pman
         
         
         if (!empty($opts['add-company'])) {
+            // make sure we have a good cache...?
+           
             DB_DataObject::factory('companies')->initCompanies($this, $opts);
         }
          
@@ -192,9 +201,12 @@ class Pman_Core_UpdateDatabase extends Pman
             (!empty($dburl['pass']) ? ' -p' . escapeshellarg($dburl['pass'])  :  '') .
             ' ' . basename($dburl['path']);
         //echo $mysql_cmd . "\n" ;
+        
+        $files = glob($dir.'/*.sql');
+        uksort($files, 'strcasecmp');
+        
        
-       
-        foreach(glob($dir.'/*.sql') as $fn) {
+        foreach($files as $fn) {
                 
                  
                 if (preg_match('/migrate/i', basename($fn))) { // skip migration scripts at present..
@@ -332,7 +344,15 @@ class Pman_Core_UpdateDatabase extends Pman
         
         echo $psql_cmd . "\n" ;
         echo "scan : $dir\n";
-        foreach(glob($dir.'/*.sql') as $bfn) {
+        
+        $files = glob($dir.'/*.sql');
+        uksort($files, 'strcasecmp');
+        //$lsort = create_function('$a,$b','return strlen($a) > strlen($b) ? 1 : -1;');
+        //usort($files, $lsort);
+        
+        
+        
+        foreach($files as $bfn) {
 
 
             if (preg_match('/migrate/i', basename($bfn))) { // skip migration scripts at present..
@@ -509,9 +529,11 @@ class Pman_Core_UpdateDatabase extends Pman
             if (!preg_match('/^json-/', $o) || empty($v)) {
                 continue;
             }
-            $type = str_replace('_', '-', substr($o,6));
-            $data= json_decode(file_get_contents($file),true);
-            DB_DataObject::factory($type)->importFromArray($this,$data,$opts);
+            $type = str_replace('_', '-', substr($o,5));
+            
+            $data= json_decode(file_get_contents($v),true);
+            $pg = HTML_FlexyFramework::get()->page;
+            DB_DataObject::factory($type)->importFromArray($pg ,$data,$opts);
             
         }
         
@@ -557,7 +579,9 @@ class Pman_Core_UpdateDatabase extends Pman
     
     function updateDataEnums()
     {
+        
         $enum = DB_DataObject::Factory('core_enum');
+        //DB_DAtaObject::debugLevel(1);
         $enum->initEnums(
             array(
                 array(
@@ -674,7 +698,7 @@ class Pman_Core_UpdateDatabase extends Pman
     function updateData()
     {
         // fill i18n data..
-        
+        HTML_FlexyFramework::get()->generateDataobjectsCache(true);
         $this->updateDataEnums();
         $this->updateDataGroups();
         $this->updateDataCompanies();
@@ -726,7 +750,7 @@ class Pman_Core_UpdateDatabase extends Pman
                      substring(seq_name, 1,strpos(seq_name,'.')-1)
                 ELSE
                     schema_name
-                END - schema_name
+                END = schema_name
              
              GROUP BY seq_name HAVING count(*)=1
              ");
@@ -743,7 +767,7 @@ class Pman_Core_UpdateDatabase extends Pman
          $cs->query("
                SELECT  'SELECT SETVAL(' ||
                          quote_literal(quote_ident(nspname) || '.' || quote_ident(S.relname)) ||
-                        ', MAX(' || quote_ident(C.attname)|| ') )  FROM ' || nspname || '.' || quote_ident(T.relname)|| ';' as cmd 
+                        ', MAX(' || quote_ident(C.attname)|| ')::integer )  FROM ' || nspname || '.' || quote_ident(T.relname)|| ';' as cmd 
                 FROM pg_class AS S,
                     pg_depend AS D,
                     pg_class AS T,