2013-07-18 1 views
0

저는 분명히 포스트그레스에 새로 왔습니다. 9.2 버전을 사용하고 있습니다. 몇 가지 역할, 데이터베이스, 스키마 및 기본 테이블을 작성하는 스크립트를 작성하려고합니다. 나는 pgAdminIII에서 SQL 편집기를 사용하지만이 같은 오류로 계속 실행 시도 :postgres에서 데이터베이스, 스키마, 테이블, 역할 객체를 빠르게 생성하기 위해 단일 파일에 내 ddl을 쓰려면 어떻게해야합니까?

ERROR: CREATE DATABASE cannot be executed from a function or multi-command string 

내가이, 포스트 그레스에서이 작업을 수행하는 방법을 간단하게 아니라고 다른 게시물에서 이해하지만 내가 파악하지 않은 것은

: 누군가가 DBS, 스키마, 역할, 테이블의 모음 등

를 구축하는 하나의 파일에 자신의 DDL을 구성 할 수있는 방법을 여기에 내가 지금 만들려고 해요 기본 DB 레이아웃 샘플입니다

CREATE ROLE "edus-db-admins-dev" 
    NOSUPERUSER INHERIT CREATEROLE; 

CREATE ROLE "edus-db-admin-dev" LOGIN 
PASSWORD 'blahblahblah' 
NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 
GRANT "edus-db-admins-dev" TO "edus-db-admin-dev"; 

CREATE ROLE "edus-esb-loggers" 
    NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 

CREATE ROLE "edus-esb-logger" LOGIN 
    PASSWORD 'blahblahblah' 
    NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION; 



CREATE DATABASE edus 
    WITH OWNER = "edus-db-admin-dev" 
    ENCODING = 'UTF8' 
    TABLESPACE = pg_default 
    LC_COLLATE = 'English_United States.1252' 
    LC_CTYPE = 'English_United States.1252' 
    CONNECTION LIMIT = -1; 

CREATE SCHEMA eduspubservice 
    AUTHORIZATION "edus-db-admin-dev"; 



CREATE TABLE eduspubservice.logs 
(
    date date NOT NULL, 
    level character varying(10), 
    category character varying(100), 
    logger character varying(100), 
    method character varying(100), 
    message character varying(10000) 
) 
WITH (
    OIDS=FALSE 
); 
ALTER TABLE eduspubservice.logs 
    OWNER TO "edus-esb-logger"; 

답변

1

저는 pgAdmin을 사용하지 않으므로 말할 수 없지만 명령 줄 그렇게 같이 DB에 스크립트를로드합니다 :

psql -d postgres -U postgres -f your_file_name.sql 

나는 pgAdmin 당신이 포스트 그레스 관리 데이터베이스에 연결하고 이에 대해 SQL 스크립트를 실행할 수 있습니다 가정합니다.

관련 문제