template0 - Mailing list pgsql-novice
From | Marcel Wolf |
---|---|
Subject | template0 |
Date | |
Msg-id | 019001c3ec40$674edeb0$6401a8c0@Lightning Whole thread Raw |
Responses |
Re: template0
|
List | pgsql-novice |
Thanks Guys!
Let me be a little for specific. I am trying to make a php/pg/apache app that when run checks for its database and if not found creates it. To do this I first connect to pg first under template1 and check for my database in pg_database. If found I close and connect to that database. If not found I create it while connected to template1 and then close and connect under my database. Here is the code. Maybe I need to post this to the php site. But when I look at using a database I need to connect to it with a user and dbname. I have been using template1 successfully except any new databases after the first one inherit the tables from the 1st database and I though the way to get around this was to use template0? Am I out in left field about all this?
Thanks
Marcel
<?php
$pgtemplate="user=postgre dbname=template0";
$pguser="user=postgre dbname=recipe";
$db="recipe";
$link=pg_connect($pgtemplate) or die ("Couldn't connect to template try again.<br>".pg_last_error());
$query = "SELECT * FROM pg_database";
$result = pg_query ($query) or die ("Couldn't get the database names".pg_last_error());
// If it worked get the database names.
$max_array=pg_numrows($result);
$got_database = false;
for ($i=0;$i<$max_array;$i++) {
$database= pg_fetch_array ($result) or print ("Can't get the array of databases<br>");
//print (" the 1st database is {$database['datname']}.<br>");
if ($database['datname'] == $db) {
$got_database = true;
}
}
if ($got_database == false) {
// Need to build my database
print "No database<br>";
pg_query ("CREATE DATABASE $db") or die ("Could not create database".pg_last_error());
// Created new database. disconnect from the template1 and reconnect to the new database.
pg_close ($link);
$link=pg_connect($pguser) or die ("Couldn't connect to the new database<br>".pg_last_error());
$query = "CREATE TABLE cats (
cat character varying(25) NOT NULL,
jpg character varying(12) NOT NULL)
";
pg_query($query) or
die ("Query Failed.<br>".pg_last_error());
$query = "CREATE TABLE recipe (
noo SERIAL,
nam character varying(50) NOT NULL,
cat character varying(25) NOT NULL,
ing text NOT NULL,
ins text NOT NULL,
PRIMARY KEY (noo)
)";
pg_query($query) or
die ("Query Failed.<br>".pg_last_error());
pgsql-novice by date: