명령어/DB

[PostgreSQL] createdb 새 데이터베이스 생성

jykim23 2026. 7. 30. 22:13
반응형

설치·접속: 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;

createdbCREATE 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
반응형