2016-07-27 3 views
2

pgAdmin III를 사용하면 postgresql 서버의 모든 데이터베이스를 나열 할 수 있습니다.패턴과 일치하는 postgresql 데이터베이스를 삭제하는 방법은 무엇입니까?

하지만 pgAdmin을 사용하면 한 번에 하나의 데이터베이스 만 삭제할 수 있습니다. 예를 들어 30 개의 데이터베이스를 하나씩 삭제하는 데 많은 시간이 걸립니다 ...

따라서 "june"이라는 단어가 포함 된 이름을 가진 모든 데이터베이스를 삭제하는 방법은 무엇입니까? ?

아마 Bash 스크립트를 만들어야 할 것입니다. 이것에 문제 없습니다. 그러나이 스크립트에서 어떤 명령을 사용합니까? 나는이 문제에 대한 성공없이 많은 시간 동안 웹 검색이

...

덕분에 도움이됩니다. psql를 들어

답변

2
psql -c "copy (select datname from pg_database where datname like '%june%') to stdout" | while read line; do 
    echo "$line" 
    #dropdb -i "$line" 
done 

dropdb 유틸리티 당신은 아마 연결 옵션 (see documentation) Abelisto에

+0

매우 흥미로운 것 같습니다. 나는 그것을 곧 시도 할 것이다. 귀하의 답변에 감사드립니다. –

+0

아저씨 덕분에 1000! 큰! 큰! 큰! –

1

큰 감사를 제공해야합니다.

대본을 가지고있어서 기쁩니다!

다음은 잘 작동하는 우리의 마지막 스크립트입니다. 절대적으로 위대하다! 수개월의 수색 후.

#!/bin/bash 
clear 
export PGPASSWORD="ssadas" 

PATTERN=$1 

echo "Le paramètre passé est : $PATTERN" 

/usr/bin/psql -U odoo -d postgres -c "copy (select datname from pg_database where datname like '%$PATTERN%') to stdout" | while read line; do 
    echo "$line" 
    dropdb -U odoo "$line" 
done 
echo 
echo "Les bases de données ayant $PATTERN dans leur nom on été effacées!" 
echo 
exit 
관련 문제