2013-03-06 9 views
22

मैं पोस्टग्रेज़ में एक टेबल बनाने की कोशिश कर रहा हूं, लेकिन यह गलत डेटाबेस में समाप्त होता है।पोस्टग्रेज़: डेटाबेस में तालिका बनाएं

यहाँ मैं क्या कर रहा है: मेरे एसक्यूएल स्क्रिप्ट में शुरू में मैं एक उपयोगकर्ता और एक डेटाबेस, और फिर एक तालिका बनाने के। संहिता अधिक समझा जाएगा:

drop database if exists sinfonifry; 
drop role if exists sinfonifry; 

-- create the requested sinfonifry user 

create user sinfonifry createdb createuser password 'some_password'; 

-- create a sinfonifry database 
create database sinfonifry owner sinfonifry; 

DROP TABLE if exists sinf01_host; 

CREATE TABLE sinf01_host 
(
    host_id bigserial NOT NULL, -- The primary key 
    host_ip inet NOT NULL, -- The IP of the host 
    host_name character varying(255) NOT NULL, -- The name of the host 
    CONSTRAINT "PK_host" PRIMARY KEY (host_id) 
) 
WITH (
    OIDS=FALSE 
); 

ALTER TABLE sinf01_host OWNER TO sinfonifry; 

अब, इस भाग एक स्वचालित स्क्रिप्ट है, और की तरह, कमांड लाइन से क्रियान्वित किया जाता है:

sudo -u postgres psql < create_db.sql 

और मैं पहले से ही postgres उपयोगकर्ता सिस्टम पर बनाया है।

और यहाँ समस्या आता है: मेज, postgres डेटाबेस, सार्वजनिक स्कीमा में समाप्त होता है sinfonifry डेटाबेस, सार्वजनिक स्कीमा में नहीं।

मैं डेटाबेस में तालिका कैसे बना सकता हूं जिसे मैं चाहता हूं?

धन्यवाद, और चियर्स, च।

+0

कनेक्ट हाल में बनाई गई डेटाबेस के लिए यह किसी भी वस्तुओं को बनाने से पहले। – wildplasser

उत्तर

26

डेटाबेस आदेश बनाने के मुद्दे को एक कनेक्ट करने के बाद:

create database sinfonifry owner sinfonifry; 
\connect sinfonifry 
+0

उत्कृष्ट, काम करता है :) – fritzone

संबंधित मुद्दे