<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - skrypt tworzenia bazy]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=202&amp;type=atom"/>
	<updated>2009-05-05T13:11:45Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=202</id>
		<entry>
			<title type="html"><![CDATA[Odp: skrypt tworzenia bazy]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=803#p803"/>
			<content type="html"><![CDATA[tak właśnie próbuję 
[code]
CREATE TABLESPACE baza2 
OWNER postgres
LOCATION 'C:\\Program Files\\PostgreSQL\\8.4\\data\\baza2';



CREATE DATABASE baza3 
    WITH LOCATION = 'C:\\Program Files\\PostgreSQL\\8.4\\data\\baza3'
    TEMPLATE = Template0
    ENCODING 'UTF-8'
    OWNER postgres;


CREATE TABLE mt_logger
(
  mt_name character varying(255),
  mt_value character varying(255),
  mt_time timestamp(0) without time zone,
  mt_quality character varying(1)
)
WITH (
  OIDS=TRUE
);

ALTER TABLE mt_logger OWNER TO postgres;
[/code]
a pojawia się taki błąd
[code]
ERROR:  CREATE TABLESPACE cannot be executed from a function or multi-command string
[/code]
jak rozdzielę na osobne skrypty tzn tworzenie przestrzeni dla tabel, tworzenie bazy i tworzenie tabel to wszystko jest OK :(]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2009-05-05T13:11:45Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=803#p803</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: skrypt tworzenia bazy]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=802#p802"/>
			<content type="html"><![CDATA[TABLESPACE w postgresie przydaje się gdy chcesz umieścić tabele w innych katalogach niż katalog z klastrem. 
Kolejnosc moze byc taka
   -baza, 
   -tabele, 
   -indeksy chociaż część może powstać automatycznie po utworzeniu tabeli
   -funckje
   -triggery

Każda baza powstaje z jakiegoś szablonu (template'a). Ale z szablony systemowego (template1) albo ze stworzonego wcześniej przez użytkownika. Swoja droga taki szablon to niż innego jak baza wzorcowa.Te funkcje, widoki, wyzwalacze które tworzone są na starcie przydają się. Część z nich wymaga postgres do poprawnego działania.
Tabele są twozone z poziomu bazy więc nie musisz mówić w jakiej bazie maja być tworzone bo wskazuje na to aktualne połączenie z bazą.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2009-05-05T11:38:03Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=802#p802</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[skrypt tworzenia bazy]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=801#p801"/>
			<content type="html"><![CDATA[potrzebuję za pomocą skryptu utworzyć bazę i wszystko co będzie w niej potrzebne tzn. tabele, funkcje, wyzwalacze, indeksy itd. Najlepiej jak by baza i wszystko z nią związane powstało w określonym katalogu i tu już pojawia się drobny problem bo jako użytkownik postgrs nie ma uprawnień do tworzenia katalogów ale z tego co zauważyłem to można odwoływać się bez zmiany uprawnień do utworzonych podkatalogów w lokalizacji domyślnej czyli np. 
[code]
'C:\\Program Files\\PostgreSQL\\8.4\\data\\baza1'
[/code]
to jest ok.
Co do tworzenia bazy to mam takie pytanie:
Czy warto i po co tworzyć TABLESPACE?
Jaka jest kolejność tworzenia takiej bazy w skrypcie tzn. na początek 
[code]
CREATE DATABASE nazwa
WITH LOCATION = 'C:\\Program Files\\PostgreSQL\\8.4\\data\\baza1'
TEMPLATE = Template0
ENCODING = ENCODING 'UTF-8';
[/code]
a co następne ? tabele ?
Czy warto i po co korzystać z szablonów bazy np. Template1 tworzy się wówczas 874 funkcje, jakieś widoki, chyba 7 wyzwalaczy i coś tam jeszcze. Czy jest albo będzie to do czegoś potrzebne w nowej tworzonej bazie?
Kolejne pytanie to czy jak zostanie już utworzona baza to czy następnie tworząc w tym samym skrypcie tabele muszą wskazywać że mają one być tworzone w tej właśnie bazie czy będzie tak domyślnie?]]></content>
			<author>
				<name><![CDATA[WitekS]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=760</uri>
			</author>
			<updated>2009-05-05T10:43:14Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=801#p801</id>
		</entry>
</feed>
