Beekeeper Studio(v5.4+)용 고급 도구 모음 플러그인이에요. T3zcaDev가 개발했어요.
✨ 주요 기능
- 📸 스냅샷 & 스마트 백업 (1-Click):
- 고속 Zstandard (
zstd -3) 또는 Gzip으로 즉시 압축 백업해요. - 하이브리드 엔진: 데몬이 실행 중이면 파이프로 직접 덤프하고, 오프라인이면 브라우저에서
CompressionStream으로 네이티브 덤프해요. - 날짜, 크기, 엔진별 로컬 스냅샷 탐색기와 확인 모달 및 경로 탐색(path-traversal) 방지 기능을 갖춘 복원 도우미를 제공해요.
- 고속 Zstandard (
- 🔄 실시간 직접 복제 (Stream A ➔ B):
- 파이프를 통해 서버 간(Production/Staging ➔ Local/Docker) 전체 데이터베이스를 실시간으로 전송하며, 디스크에 임시 파일을 저장하지 않아요.
- 자동 정리: 충돌을 일으키는 구문(
DEFINER,USE,CREATE DATABASE,SQL_LOG_BIN)을 제거해요. - 테이블 필터 및 데이터 마스킹: 텔레메트리 테이블을 제외하고 이메일과 민감한 데이터를 즉시 난독화해요.
- ⚖️ 멀티 엔진 Schema Diff V2 & 마이그레이션:
- MySQL / MariaDB와 PostgreSQL을 지원해요.
- 누락된 테이블과 컬럼, 타입 불일치, 인덱스, 외래 키를 감지해요.
- 듀얼 내보내기: 네이티브 DDL 스크립트와 Laravel 마이그레이션 코드(
up(),down()메서드가 포함된Blueprint)를 생성해요. 버튼 하나로 Beekeeper Studio SQL 편집기에서 바로 열거나.sql/.php로 저장할 수 있어요.
- 🩺 상태 & 성능 진단 (Health Auditor):
- 신호등 표시와 설정된 감점 기준이 적용된 전체 상태 점수 (0 - 100)를 제공해요.
- Primary Key 없는 테이블: 행 기반 복제(RBR)와 성능을 저하시키는 테이블을 알려줘요.
- 중복 인덱스:
INSERT/UPDATE쓰기를 느리게 만드는 완전히 동일한 인덱스와 중복 접두사 인덱스를 감지해요. - 저장 공간 분석: 테이블별 데이터와 인덱스 크기를 비교 분석해요.
- 실시간 프로세스 모니터: 활성 스레드와 쿼리(
SHOW PROCESSLIST/pg_stat_activity)를 보여주고, 쿼리를 안전하게 중지(KILL QUERY <id>)하는 버튼을 제공해요.
- 🧪 스마트 목 데이터 생성 & 연쇄 채우기 (DAG):
- Faker로 어떤 테이블이든 현실적인 데이터로 채워요.
- 전체 연쇄 채우기 (Graph Seeding): 빈 테이블의 외래 키 의존성 그래프를 분석해 부모 테이블을 먼저 채우고, 그 ID를 자식 테이블에 자동으로 넣어줘요.
- 시드 내보내기:
.sql(INSERT INTO),.csv,.json으로 내보내요.
- 🐳 자동 탐지 (Docker & 로컬 프로젝트):
- 호스트 포트 매핑과 함께 실행 중인 MySQL, Postgres, MongoDB, Redis, ClickHouse, SQL Server 컨테이너(
docker ps)를 감지해요. - 로컬
.env파일에서 자격 증명을 추출해 Beekeeper에 바로 저장할 수 있어요.
- 호스트 포트 매핑과 함께 실행 중인 MySQL, Postgres, MongoDB, Redis, ClickHouse, SQL Server 컨테이너(
- 📖 데이터 사전:
- 데이터베이스 기술 문서를 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에서 확인하세요.sqlite3CLI (선택 사항, Beekeeper에 저장된 연결을 읽을 때만 필요)
🔒 개인정보 보호
모든 처리는 내 컴퓨터에서 이루어져요. companion 데몬은 127.0.0.1:58765(루프백)에서만 대기하고 외부 서버와 절대 통신하지 않아요. 연결 자격 증명은 내 컴퓨터 밖으로 나가지 않아요.
🚀 설치 및 자동 시작
옵션 A: Beekeeper Studio 마켓플레이스 + 네이티브 설치 프로그램 (권장)
- Beekeeper Studio 플러그인 마켓플레이스에서 DB Manager Pro를 설치하세요(
Plugins➔ “DB Manager Pro” 검색). - companion이 필요한 도구(스트림 복제, 자동 탐지, Schema Diff)를 처음 열면 Companion 다운로드 버튼과 함께 “Companion Daemon이 응답하지 않음” 알림이 표시돼요. GitHub Releases에서 운영체제에 맞는 실행 파일을 다운로드하고 더블 클릭해서 실행하세요.
- 이걸로 끝이에요. 실행 파일이 스스로 설치되고 자동 시작으로 등록된 뒤(Linux
systemd --user, macOSLaunchAgent, WindowsStartup) 실행돼요. Node.js를 설치하거나 터미널을 열 필요가 없어요.
설치 프로그램은 아직 서명되지 않았기 때문에(docs/COMPANION.md 참고) Windows/macOS에서 처음 실행할 때 보안 경고가 표시돼요. 계속하려면 어떤 버튼을 눌러야 하는지 해당 문서에 자세히 나와 있어요.
옵션 B: 개발/기여용 심볼릭 링크
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에서 열기
- Beekeeper Studio를 열고 아무 데이터베이스에나 연결하세요.
- 각 도구는 상단 바의 다음 메뉴에서 바로 사용할 수 있어요:
Tools:Tools➔DB Manager: Snapshots & BackupsTools➔DB Manager: Clonado Stream (A ➔ B)Tools➔DB Manager: Schema Diff & MigracionesTools➔DB Manager: Auditor de Salud & RendimientoTools➔DB Manager: Generador Mock DataTools➔DB Manager: Diccionario de DatosTools➔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)