2013-03-06 2 views
22

postgres에서 테이블을 만들려고하지만 잘못된 데이터베이스로 끝납니다.postgres : 데이터베이스에 테이블 만들기

다음은 내가하는 일입니다. SQL 스크립트에서 처음에는 사용자와 데이터베이스를 만든 다음 테이블을 만듭니다.

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 데이터베이스, 공용 스키마, sinfonifry 데이터베이스, 공개 스키마가 아닙니다.

원하는 데이터베이스에 테이블을 만들려면 어떻게해야합니까?

감사합니다.

+0

연결 그 안에 물건을 만들기 전에. – wildplasser

답변

26

커넥트 데이터베이스 create 명령을 실행 한 후 : 새롭게 생성 된 데이터베이스에

create database sinfonifry owner sinfonifry; 
\connect sinfonifry 
+0

훌륭함, 작동 :) – fritzone

관련 문제