menu
language한국어
save_alt 다운로드

DB Manager Pro

실시간 스트림 복제, 스마트 백업, 스키마 비교, 상태 진단, 목 데이터 생성, Docker/.env 자동 탐지를 지원해요.

제작: T3zcaDev 커뮤니티 플러그인

Readme

이 글은 제삼자가 작성했으며 자동으로 번역되었습니다. 영어 원문 읽기

버전 라이선스 Beekeeper Studio

Beekeeper Studio(v5.4+)용 고급 도구 모음 플러그인이에요. T3zcaDev가 개발했어요.


✨ 주요 기능

  1. 📸 스냅샷 & 스마트 백업 (1-Click):
    • 고속 Zstandard (zstd -3) 또는 Gzip으로 즉시 압축 백업해요.
    • 하이브리드 엔진: 데몬이 실행 중이면 파이프로 직접 덤프하고, 오프라인이면 브라우저에서 CompressionStream으로 네이티브 덤프해요.
    • 날짜, 크기, 엔진별 로컬 스냅샷 탐색기와 확인 모달 및 경로 탐색(path-traversal) 방지 기능을 갖춘 복원 도우미를 제공해요.
  2. 🔄 실시간 직접 복제 (Stream A ➔ B):
    • 파이프를 통해 서버 간(Production/Staging ➔ Local/Docker) 전체 데이터베이스를 실시간으로 전송하며, 디스크에 임시 파일을 저장하지 않아요.
    • 자동 정리: 충돌을 일으키는 구문(DEFINER, USE, CREATE DATABASE, SQL_LOG_BIN)을 제거해요.
    • 테이블 필터 및 데이터 마스킹: 텔레메트리 테이블을 제외하고 이메일과 민감한 데이터를 즉시 난독화해요.
  3. ⚖️ 멀티 엔진 Schema Diff V2 & 마이그레이션:
    • MySQL / MariaDB와 PostgreSQL을 지원해요.
    • 누락된 테이블과 컬럼, 타입 불일치, 인덱스, 외래 키를 감지해요.
    • 듀얼 내보내기: 네이티브 DDL 스크립트와 Laravel 마이그레이션 코드(up(), down() 메서드가 포함된 Blueprint)를 생성해요. 버튼 하나로 Beekeeper Studio SQL 편집기에서 바로 열거나 .sql / .php로 저장할 수 있어요.
  4. 🩺 상태 & 성능 진단 (Health Auditor):
    • 신호등 표시와 설정된 감점 기준이 적용된 전체 상태 점수 (0 - 100)를 제공해요.
    • Primary Key 없는 테이블: 행 기반 복제(RBR)와 성능을 저하시키는 테이블을 알려줘요.
    • 중복 인덱스: INSERT/UPDATE 쓰기를 느리게 만드는 완전히 동일한 인덱스와 중복 접두사 인덱스를 감지해요.
    • 저장 공간 분석: 테이블별 데이터와 인덱스 크기를 비교 분석해요.
    • 실시간 프로세스 모니터: 활성 스레드와 쿼리(SHOW PROCESSLIST / pg_stat_activity)를 보여주고, 쿼리를 안전하게 중지(KILL QUERY <id>)하는 버튼을 제공해요.
  5. 🧪 스마트 목 데이터 생성 & 연쇄 채우기 (DAG):
    • Faker로 어떤 테이블이든 현실적인 데이터로 채워요.
    • 전체 연쇄 채우기 (Graph Seeding): 빈 테이블의 외래 키 의존성 그래프를 분석해 부모 테이블을 먼저 채우고, 그 ID를 자식 테이블에 자동으로 넣어줘요.
    • 시드 내보내기: .sql(INSERT INTO), .csv, .json으로 내보내요.
  6. 🐳 자동 탐지 (Docker & 로컬 프로젝트):
    • 호스트 포트 매핑과 함께 실행 중인 MySQL, Postgres, MongoDB, Redis, ClickHouse, SQL Server 컨테이너(docker ps)를 감지해요.
    • 로컬 .env 파일에서 자격 증명을 추출해 Beekeeper에 바로 저장할 수 있어요.
  7. 📖 데이터 사전:
    • 데이터베이스 기술 문서를 Markdown 또는 정적 HTML로 내보내요.

📋 사전 요구 사항

  • Beekeeper Studio 5.4+
  • Node.js 18+ 및 npm — 옵션 B(심볼릭 링크/개발)로 설치할 때만 필요해요. companion 네이티브 설치 프로그램(옵션 A)은 Node.js가 필요 없어요.
  • mysql/mysqldump, psql/pg_dump, mongodump, docker(사용하는 엔진에 따라) — companion이 호출하지만 함께 제공하지는 않아요. 어떤 도구가 감지되는지는 Tools ➔ DB Manager 또는 /api/status에서 확인하세요.
  • sqlite3 CLI (선택 사항, Beekeeper에 저장된 연결을 읽을 때만 필요)

🔒 개인정보 보호

모든 처리는 내 컴퓨터에서 이루어져요. companion 데몬은 127.0.0.1:58765(루프백)에서만 대기하고 외부 서버와 절대 통신하지 않아요. 연결 자격 증명은 내 컴퓨터 밖으로 나가지 않아요.


🚀 설치 및 자동 시작

옵션 A: Beekeeper Studio 마켓플레이스 + 네이티브 설치 프로그램 (권장)

  1. Beekeeper Studio 플러그인 마켓플레이스에서 DB Manager Pro를 설치하세요(Plugins ➔ “DB Manager Pro” 검색).
  2. companion이 필요한 도구(스트림 복제, 자동 탐지, Schema Diff)를 처음 열면 Companion 다운로드 버튼과 함께 “Companion Daemon이 응답하지 않음” 알림이 표시돼요. GitHub Releases에서 운영체제에 맞는 실행 파일을 다운로드하고 더블 클릭해서 실행하세요.
  3. 이걸로 끝이에요. 실행 파일이 스스로 설치되고 자동 시작으로 등록된 뒤(Linux systemd --user, macOS LaunchAgent, Windows Startup) 실행돼요. Node.js를 설치하거나 터미널을 열 필요가 없어요.

설치 프로그램은 아직 서명되지 않았기 때문에(docs/COMPANION.md 참고) Windows/macOS에서 처음 실행할 때 보안 경고가 표시돼요. 계속하려면 어떤 버튼을 눌러야 하는지 해당 문서에 자세히 나와 있어요.

git clone https://github.com/JonathanHerSa/bks-db-manager.git
cd bks-db-manager
npm install
npm run build
ln -s "$(pwd)" ~/.config/beekeeper-studio/plugins/t3zca-db-manager

npm install만 실행하면 companion 데몬이 백그라운드에서 실행되고, 네이티브 바이너리가 아닌 클론한 저장소를 기준으로 자동 시작되도록 설정돼요. 플러그인을 사용하려고 추가 명령을 실행하거나 터미널을 다시 열 필요가 없어요.

Beekeeper Studio 6.2+: 플러그인 시스템에 기본으로 활성화된 unlistedDisabled가 추가됐어요. Beekeeper가 개발용 심볼릭 링크를 불러오게 하려면 ~/.config/beekeeper-studio/user.config.ini에 다음을 추가하세요:

[pluginSystem]
disabled = false
unlistedDisabled = false
communityDisabled = false

서비스 수동 관리 (선택 사항)

npm install --ignore-scripts로 설치했거나, 프로젝트 폴더를 옮겼거나, 서비스를 비활성화하려는 경우에만 필요해요:

# (Re)instala el servicio en segundo plano manualmente
npm run daemon:install

# Comprueba que esté activo y respondiendo
npm run daemon:status

# Para desinstalarlo en cualquier momento
npm run daemon:uninstall

(원한다면 상시 서비스 대신 터미널에서 npm run server로 임시 실행할 수도 있어요.)

Beekeeper Studio에서 열기

  1. Beekeeper Studio를 열고 아무 데이터베이스에나 연결하세요.
  2. 각 도구는 상단 바의 다음 메뉴에서 바로 사용할 수 있어요: Tools:
    • Tools ➔ DB Manager: Snapshots & Backups
    • Tools ➔ DB Manager: Clonado Stream (A ➔ B)
    • Tools ➔ DB Manager: Schema Diff & Migraciones
    • Tools ➔ DB Manager: Auditor de Salud & Rendimiento
    • Tools ➔ DB Manager: Generador Mock Data
    • Tools ➔ DB Manager: Diccionario de Datos
    • Tools ➔ DB Manager: Auto-Discovery (Docker & .env)
    • 또는 아무 테이블에서나 마우스 오른쪽 클릭 ➔ DB Manager: Mock Data para esta tabla를 선택하세요.

Hot Reload 개발 모드 (선택 사항)

Vue 컴포넌트를 수정하고 변경 사항을 즉시 확인하려면:

npm run dev

📦 빌드 및 릴리스

npm run build            # frontend del plugin -> dist/
npm run companion:build  # binario nativo del companion para tu SO -> build/

vX.Y.Z 태그를 푸시할 때마다 .github/workflows/release.yml이 실행되어 다음을 포함한 GitHub Release 하나를 빌드하고 게시해요:

  • manifest.json과 bks-db-manager-{version}.zip (플러그인 프런트엔드, Beekeeper Studio Plugins 게시 절차를 따름).
  • bks-db-manager-companion-{linux-x64,linux-arm64,darwin-arm64,win-x64}.{tar.gz,zip} + 해당 .sha256 (companion 네이티브 설치 프로그램, docs/COMPANION.md 참고) — 파일 이름에 버전이 없어서 언제나 /releases/latest/download/에서 링크할 수 있어요. macOS Intel(x64)은 Node.js의 미해결 버그(nodejs/node#62893) 때문에 보류 중이에요.

🤝 기여하기

이슈와 풀 리퀘스트는 언제나 환영해요. 큰 PR을 열기 전에 먼저 이슈를 열어 변경 사항을 논의해 주세요.

📄 라이선스

이 프로젝트는 GPLv3 라이선스를 따라요. 전문은 LICENSE를 참고하세요.

👤 제작자

T3zcaDev — GitHub (@JonathanHerSa)