-- 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;