-- PostgreSQL 슈퍼유저(예: postgres)로 **한 번만** 실행하는 예시입니다.
-- 값을 바꾼 뒤: psql -U postgres -f bootstrap-role.sql (또는 psql 안에서 붙여넣기)
--
-- 앱은 .env의 DB_USERNAME / DB_PASSWORD / DB_DATABASE 로 접속합니다.
-- 역할이 이미 있으면 CREATE ROLE 부분은 생략하고 비밀번호만 맞춥니다: \password 역할이름

-- 1) 앱 전용 로그인 역할 (이름은 .env의 DB_USERNAME과 동일하게)
CREATE ROLE app_user WITH LOGIN PASSWORD '여기에_강한_비밀번호';

-- 2) 데이터베이스 (.env의 DB_DATABASE와 동일)
CREATE DATABASE app_database OWNER app_user;

-- 이미 DB가 있고 소유자만 바꾸려면(주의: 운영 정책에 맞게 사용):
-- ALTER DATABASE app_database OWNER TO app_user;

-- 3) 같은 서버에서 DB를 만든 직후, public 스키마 권한(버전에 따라 필요)
\c app_database
GRANT ALL ON SCHEMA public TO app_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO app_user;
