UpdateDatabase.php
authorAlan Knowles <alan@akbkhome.com>
Sat, 20 Aug 2011 14:57:19 +0000 (22:57 +0800)
committerAlan Knowles <alan@akbkhome.com>
Sat, 20 Aug 2011 14:57:19 +0000 (22:57 +0800)
UpdateDatabase.php

index 53aeefe..b35489d 100644 (file)
@@ -33,7 +33,67 @@ class Pman_Core_RunGenerator extends Pman
      
     function get()
     {
-        die("not working yet");
+        $this->importSQL();
+        
+    }
+     /**
+     * imports SQL files from all DataObjects directories....
+     * 
+     * except any matching /migrate/
+     */
+    function importSQL()
+    {
+        $options = &PEAR::getStaticProperty('DB_DataObject','options');
+        
+        $ff = HTML_Flexyframework::get();
+        
+        $url = parse_url($options['database']);
+        // hide stuff for web..
+        $cli = $options['cli'];
+        if (!$cli) {
+            $url['pass'] = '*****';
+            $url['user'] = '*****';
+            $url['host'] = '*****';
+        }
+        
+        require_once 'System.php';
+        $cat = System::which('cat');
+        $mysql = System::which('mysql');
+        print_r($options['mods'] );
+        foreach($this->modsql as $m => $fl)
+        {
+            if ($cli && isset($options['database_'. $m])) {
+                $url = parse_url($options['database_'.$m]);
+            }
+            
+            $mysql_cmd = $mysql .
+                ' -h ' . $url['host'] .
+                ' -u' . escapeshellarg($url['user']) .
+                (!empty($url['pass']) ? ' -p' . escapeshellarg($url['pass'])  :  '') .
+                ' ' . basename($url['path']);
+           
+            echo $mysql_cmd . "\n" ;
+            
+            if (!empty($options['mods'] ) && !in_array($m,  $options['mods'] )) {
+                continue;
+            }
+            
+            foreach($fl as $f) {
+                $fn = $ff->page->rootDir. "/Pman/$m/DataObjects/$f";
+                if (preg_match('/migrate/i', $f)) { // skip migration scripts at present..
+                    continue;
+                }
+                
+                $cmd = $cat . ' ' . escapeshellarg($fn) . " | $mysql_cmd -f ";
+                echo $cmd. ($cli ? "\n" : "<BR>\n");
+                if ($cli) {
+                    passthru($cmd);
+                }
+                
+            }
+        }
+        
+        
         
     }