researchqa/database.sql
2025-10-05 23:22:54 +09:00

58 lines
1.8 KiB
SQL

-- PostgreSQL 데이터베이스 및 테이블 생성 스크립트
-- 작성일: 2024년
-- 목적: researchqa 프로젝트용 데이터베이스 설정
-- 1. woonglab 사용자 생성 (이미 존재할 경우 무시)
DO $$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'woonglab') THEN
CREATE USER woonglab WITH PASSWORD '!@#woonglab';
END IF;
END
$$;
-- 2. researchqa 데이터베이스 생성 (이미 존재할 경우 무시)
SELECT 'CREATE DATABASE researchqa OWNER woonglab'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'researchqa')\gexec
-- 3. researchqa 데이터베이스에 대한 권한 부여
GRANT ALL PRIVILEGES ON DATABASE researchqa TO woonglab;
-- 4. researchqa 데이터베이스에 연결하여 테이블 생성
\c researchqa;
-- 5. files 테이블 생성 (main.py와 일치)
CREATE TABLE uploaded_file (
id SERIAL PRIMARY KEY,
filename VARCHAR(255) NOT NULL,
file_path VARCHAR(500) NOT NULL,
status VARCHAR(10) NOT NULL,
upload_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 6. user_log 테이블 생성
CREATE TABLE IF NOT EXISTS user_log (
id SERIAL PRIMARY KEY,
question TEXT NOT NULL,
answer TEXT NOT NULL,
like_count INTEGER DEFAULT 0,
dislike_count INTEGER DEFAULT 0,
ip VARCHAR(45),
reg_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 7. woonglab 사용자에게 테이블 권한 부여
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO woonglab;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO woonglab;
-- 8. 생성된 테이블 확인
\dt
-- 9. 테이블 구조 확인
\d files
\d user_log
-- 스크립트 실행 완료 메시지
SELECT 'Database setup completed successfully!' as message;