2013-08-05 3 views
1

이 작업을 수행하는 데 여러 가지 방법을 시도했지만 성공하지 못했습니다.groovy 스크립트에서 실행할 때 Postgresql createdb 명령이 응답하지 않습니다.

def createDbCmdLine = "-p 5433 --encoding=UTF8 --template=template0 myDatabaseName" 
ant.exec(executable:'fullpath/bin/createdb') { 
    arg(line: "$createDbCmdLine") 
    env(key:"PGPASSWORD", value:"myPassword") 
} 

그러나,이 영원히 중단 :

현재, 나는 (9.2) 'CREATEDB'명령이 같은 PostgreSQL을 실행하려고 그루비 스크립트가 있습니다. 문자열을 만들고 실행하려고했을 때 :

["sh", "-c", theStringHere].execute() 

결과는 동일합니다. 이 경우에도 문자열을 인쇄했습니다. 명령 행에서 (직접 또는 'sh -c'를 통해) 실행했을 때 완벽하게 작동했습니다. 명령이 완료된 후 'psql'을 통해 postgresql을 입력하여 \ l을 수행하고 생성 된 데이터베이스를 볼 수 있습니다.

누구나 무슨 문제인지 알고 계십니까?

답변

0

환경 변수가 보이지 않고 비밀번호를 기다리는 중 가장 문제가 될 수 있습니다.

두 가지 옵션이 있다고 생각합니다. 첫 번째는 셸 이스케이프를 계속하고 .pgpass 파일을 사용하려고하지만 다른 하나는 포스트그레스 (또는 다른 기존 db)에 연결하여 데이터베이스를 수동으로 만드는 것입니다. 이를 수행하려면 다음 SQL을 발행하십시오.

CREATE DATABASE myDatabaseName WITH TEMPLATE template0 ENCODING utf8; 
관련 문제