]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
install.php works for postgres
authorBrenda Wallace <shiny@cpan.org>
Tue, 23 Jun 2009 06:01:03 +0000 (18:01 +1200)
committerBrenda Wallace <shiny@cpan.org>
Wed, 15 Jul 2009 06:46:34 +0000 (18:46 +1200)
install.php

index 9f48c919de3c0642b0d4c57e8ed6636fa2874dc1..1b8b7655c6135d6e5471b2d5183a3c3c8adff38d 100644 (file)
@@ -244,6 +244,45 @@ function pgsql_db_installer($host, $database, $username, $password, $sitename) {
   updateStatus("Checking database...");
   $conn = pg_connect($connstring);
 
+  updateStatus("Running database script...");
+  //wrap in transaction;
+  pg_query($conn, 'BEGIN');
+  $res = runDbScript(INSTALLDIR.'/db/laconica_pg.sql', $conn, 'pgsql');
+  
+  if ($res === false) {
+      updateStatus("Can't run database script.", true);
+      showForm();
+      return;
+  }
+  foreach (array('sms_carrier' => 'SMS carrier',
+                'notice_source' => 'notice source',
+                'foreign_services' => 'foreign service')
+          as $scr => $name) {
+      updateStatus(sprintf("Adding %s data to database...", $name));
+      $res = runDbScript(INSTALLDIR.'/db/'.$scr.'.sql', $conn, 'pgsql');
+      if ($res === false) {
+          updateStatus(sprintf("Can't run %d script.", $name), true);
+          showForm();
+          return;
+      }
+  }
+  pg_query($conn, 'COMMIT');
+
+  updateStatus("Writing config file...");
+  if (empty($password)) {
+    $sqlUrl = "pgsql://$username@$host/$database";
+  }
+  else {
+    $sqlUrl = "pgsql://$username:$password@$host/$database";
+  }
+  $res = writeConf($sitename, $sqlUrl, $fancy);
+  if (!$res) {
+      updateStatus("Can't write config file.", true);
+      showForm();
+      return;
+  }
+  updateStatus("Done!");
+      
 }
 
 function mysql_db_installer($host, $database, $username, $password, $sitename) {
@@ -305,7 +344,7 @@ function writeConf($sitename, $sqlUrl, $fancy)
     return $res;
 }
 
-function runDbScript($filename, $conn)
+function runDbScript($filename, $conn, $type='mysql')
 {
     $sql = trim(file_get_contents($filename));
     $stmts = explode(';', $sql);
@@ -314,8 +353,13 @@ function runDbScript($filename, $conn)
         if (!mb_strlen($stmt)) {
             continue;
         }
-        $res = mysql_query($stmt, $conn);
+        if ($type == 'mysql') {
+          $res = mysql_query($stmt, $conn);
+        } elseif ($type=='pgsql') {
+          $res = pg_query($conn, $stmt);
+        }
         if ($res === false) {
+            updateStatus("FAILED SQL: $stmt");
             return $res;
         }
     }