install.php works for postgres
This commit is contained in:
		
							
								
								
									
										48
									
								
								install.php
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								install.php
									
									
									
									
									
								
							| @@ -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; | ||||
|         } | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user