반응형
설치·접속: PostgreSQL 설치와 접속
부제: psql에 들어가지 않고 셸에서 바로 데이터베이스를 만든다
createdb testdb # testdb 데이터베이스 생성
createdb --echo demo2 # 실행되는 SQL도 함께 출력
createdb -O appuser -E UTF8 shop2 # 소유자·인코딩 지정
SELECT pg_catalog.set_config('search_path', '', false);
CREATE DATABASE demo2;createdb는 CREATE DATABASE SQL을 감싼 셸 래퍼다. psql -c "CREATE DATABASE ..."를 치는 것과 결과는 같지만, 스크립트나 배포 자동화에서 한 줄로 끝낼 수 있어 편하다. 실행 유저는 데이터베이스 생성 권한(CREATEDB)이 있어야 하며, 네이티브 설치 환경에서는 보통 sudo -u postgres createdb ... 형태로 쓴다. --echo를 붙이면 내부에서 실제로 날아가는 SQL을 확인할 수 있어 학습용으로도 좋다.
이렇게도 쓴다
특정 소유자와 인코딩을 지정해 만든다.
createdb -O appuser -E UTF8 -T template0 reportdb
기존 데이터베이스를 템플릿 삼아 복제한다. (스키마 포함 통째 복사)
createdb -T shop shop_staging
만들면서 한 줄 코멘트를 붙여 둔다. (나중에 \l+에서 보임)
createdb --echo "analytics" && psql -c "COMMENT ON DATABASE analytics IS '분석 전용';"
원격 서버에 만든다. (호스트·포트·유저 지정)
createdb -h db.internal -p 5432 -U postgres orders_db
이미 있으면 건너뛰고 없으면 만드는 멱등 스크립트. (psql 조합)
psql -tc "SELECT 1 FROM pg_database WHERE datname='appdb'" | grep -q 1 || createdb appdb
배포 스크립트에서 앱 DB와 유저를 함께 준비한다. (createuser 조합)
createuser appuser && createdb -O appuser appdb반응형
'명령어 > DB' 카테고리의 다른 글
| [PostgreSQL] dropdb 데이터베이스 삭제 (0) | 2026.07.30 |
|---|---|
| [PostgreSQL] createuser 역할(role) 생성 (0) | 2026.07.30 |
| [PostgreSQL] "too many clients already" — max_connections와 커넥션 풀링 (1) | 2026.07.30 |
| [PostgreSQL] psql 터미널에서 DB에 접속한다 (0) | 2026.07.30 |
| [PostgreSQL] \du 롤(계정)과 권한 속성을 본다 (0) | 2026.07.30 |