프로젝트 소개

pgAdmin 4는 PostgreSQL 데이터베이스의 관리 및 개발 플랫폼으로, 이전의 pgAdmin3 도구를 재작성한 것입니다. 웹 애플리케이션으로 구현되어 있으며, 서버 측은 Python(Flask), 클라이언트 측 UI는 ReactJS, HTML5, CSS로 구성됩니다. 배포 옵션: 웹 서버에서 실행하여 브라우저로 접근하거나, runtime/ 하위 디렉터리에 있는 Electron 기반 런타임 애플리케이션을 통해 워크스테이션에서 독립 실행형으로 실행할 수 있습니다. 이 런타임은 Python 서버 프로세스를 포크하여 UI를 표시합니다. README에 명시된 필수 조건: Node.js 20 이상, yarn(Corepack을 통해 활성화), Python 3.9 이상, PostgreSQL 서버. 빌드 워크플로: 서드파티 JavaScript 라이브러리와 프로젝트 자체 JS, CSS, 이미지가 번들로 컴파일됩니다. *nix 시스템에서는 make install-node 및 make bundle로 수행하며, Windows에서는 web 디렉터리에서 yarn install 및 yarn run bundle을 실행합니다. Python 환경 설정: 가상 환경을 생성하고 활성화한 뒤 pip를 업그레이드하고, psycopg3 빌드를 위해 pg_config를 찾을 수 있도록 PostgreSQL의 bin/ 디렉터리를 PATH에 추가한 다음 requirements.txt(회귀 테스트의 경우 web/regression/requirements.txt)를 설치합니다. 로컬 구성 파일(web/config_local.py)은 config.py의 설정을 재정의할 수 있으며, 데이터 디렉터리, 서버 주소 및 포트, 서버 대 데스크톱 모드, 구성 데이터베이스 URI, SMTP 설정, 로그 레벨, SQLite 경로 등이 포함됩니다. 구성 데이터베이스의 초기 설정은 서버 모드에서는 대화형으로, 데스크톱 모드에서는 비대화형으로 진행되며, web/setup.py를 실행하거나 web/pgAdmin4.py를 시작하여 수행합니다. 문서는 Sphinx(make docs)로 빌드할 수 있습니다. 런타임은 runtime 디렉터리에서 yarn install을 실행하고 dev_config.json.in을 dev_config.json으로 복사한 뒤 경로를 조정하여 빌드할 수 있습니다. 패키징 대상에는 소스 tarball(make src), PIP 휠(make pip), macOS AppBundle, Windows 설치 프로그램이 포함되며, 플랫폼별 지침은 pkg/mac 및 pkg/win32에 있습니다. SQLite 구성 DB의 데이터베이스 마이그레이션은 Flask-Migrate(flask db revision)로 생성하며, upgrade 함수를 편집하고 web/pgadmin/model/__init__.py의 SCHEMA_VERSION을 증가시킵니다. 지원 옵션은 pgadmin.org/support에 나열되어 있으며, 보안 문제는 보안 이메일 주소로 보고해야 합니다. 개발은 pgadmin-org/pgadmin4 저장소의 GitHub에서 이루어지며, master 브랜치에 대한 풀 리퀘스트로 기여하고 pgadmin-hackers 메일링 리스트에서 논의합니다.