Commit 8a5fd185 authored by platyhouse's avatar platyhouse

# 문서 업데이트: ptyMysqlQuery 및 ptyGit* 도구 추가, ptyMysqlBackup 패턴 매칭 설명 보완

## CLAUDE.md 변경 사항

### ptyMysqlBackup 섹션 개선
- CLAUDE.md: 기본 출력 형식을 .sql에서 .tgz(기본 압축)로 수정
- CLAUDE.md: 와일드카드 패턴 사용 예시 추가 (t_app_*, *_log)
- CLAUDE.md: 테이블명 와일드카드 패턴 설명 섹션 추가 (fnmatch 사용)

### ptyMysqlQuery 문서 추가
- CLAUDE.md: ptyMysqlQuery 도구 전체 문서 추가
- CLAUDE.md: 옵션 설명 (--table, --json, --dump, --csv, --markdown 등)
- CLAUDE.md: 사용 예시 및 출력 형식 설명

### ptyGit* 스크립트 문서 추가
- CLAUDE.md: ptyGitCommit 도구 문서 추가 (자동 커밋 메시지 생성)
- CLAUDE.md: ptyGitCommitAndPush 도구 문서 추가 (커밋 + push 단축 명령)
- CLAUDE.md: 옵션 및 사용 예시 설명

## README.md 변경 사항

### MySQL 도구 섹션 업데이트
- README.md: ptyMysqlBackup 설명에 기본 tgz 압축 표기 추가
- README.md: ptyMysqlQuery 도구 목록에 추가

### Git 도구 섹션 추가
- README.md: Git 도구 섹션 신규 추가
- README.md: ptyGitCommit, ptyGitCommitAndPush 도구 목록 추가

### 사용 예시 확장
- README.md: ptyMysqlBackup 와일드카드 패턴 예시 추가
- README.md: ptyMysqlQuery 다양한 출력 형식 예시 추가
parent 4dd0f2e8
...@@ -816,8 +816,10 @@ mysqldump를 사용하여 테이블을 백업합니다. ...@@ -816,8 +816,10 @@ mysqldump를 사용하여 테이블을 백업합니다.
```bash ```bash
./ptyMysqlBackup <database> <table> [옵션] ./ptyMysqlBackup <database> <table> [옵션]
./ptyMysqlBackup mydb users # mydb.users.sql 생성 ./ptyMysqlBackup mydb users # mydb.users.tgz 생성 (기본 압축)
./ptyMysqlBackup mydb '*' # mydb의 모든 테이블 백업 ./ptyMysqlBackup mydb '*' # mydb의 모든 테이블 백업
./ptyMysqlBackup mydb "t_app_*" # t_app_로 시작하는 테이블만 백업
./ptyMysqlBackup mydb "*_log" # _log로 끝나는 테이블만 백업
./ptyMysqlBackup '*' '*' # 전체 백업 (따옴표 필수!) ./ptyMysqlBackup '*' '*' # 전체 백업 (따옴표 필수!)
./ptyMysqlBackup mydb users --output=/backup # 지정 경로에 저장 ./ptyMysqlBackup mydb users --output=/backup # 지정 경로에 저장
./ptyMysqlBackup '*' '*' --dry-run # 백업 대상만 미리보기 ./ptyMysqlBackup '*' '*' --dry-run # 백업 대상만 미리보기
...@@ -825,6 +827,11 @@ mysqldump를 사용하여 테이블을 백업합니다. ...@@ -825,6 +827,11 @@ mysqldump를 사용하여 테이블을 백업합니다.
./ptyMysqlBackup mydb users --no-tgz # mydb.users.sql 생성 (압축 안 함) ./ptyMysqlBackup mydb users --no-tgz # mydb.users.sql 생성 (압축 안 함)
``` ```
**테이블명 와일드카드 패턴:**
- `*`: 여러 문자 매칭 (예: `t_app_*`, `*_log`, `*config*`)
- `?`: 한 문자 매칭 (예: `t_???`)
- `fnmatch()` 함수 사용
**옵션:** **옵션:**
| 옵션 | 설명 | 기본값 | | 옵션 | 설명 | 기본값 |
...@@ -960,6 +967,77 @@ LOCK TABLES `users_backup` WRITE; ...@@ -960,6 +967,77 @@ LOCK TABLES `users_backup` WRITE;
--src-table=users --dst-table=users_backup --src-table=users --dst-table=users_backup
``` ```
### ptyMysqlQuery - SQL 쿼리 실행
MySQL 쿼리를 실행하고 다양한 형식으로 결과를 출력합니다.
```bash
./ptyMysqlQuery "SQL" [옵션]
```
**옵션:**
| 옵션 | 설명 | 기본값 |
|------|------|--------|
| `--mysql=섹션명` | INI 파일 섹션 | `default` |
| `--database=DB명` | 데이터베이스 지정 (미지정시 INI 설정 사용) | - |
| `--table` | 테이블 형태로 출력 | key:value 형태 |
| `--json` | JSON 형태로 출력 | - |
| `--dump` | INSERT INTO SQL 형태로 출력 | - |
| `--csv` | CSV 형태로 출력 | - |
| `--markdown` | Markdown 테이블 형태로 출력 | - |
| `--verbose` | 상세 로그 출력 | - |
| `--edit` | 설정 파일을 에디터로 열기 | - |
**사용 예시:**
```bash
# 기본 출력 (key:value 형태)
./ptyMysqlQuery "SELECT * FROM users LIMIT 5"
# 테이블 형태
./ptyMysqlQuery "SELECT * FROM users" --table
# JSON 출력
./ptyMysqlQuery "SELECT * FROM users" --json
# INSERT SQL 형태
./ptyMysqlQuery "SELECT * FROM users" --dump
# CSV 출력
./ptyMysqlQuery "SELECT * FROM users" --csv
# Markdown 테이블
./ptyMysqlQuery "SELECT * FROM users" --markdown
# 다른 섹션/DB 사용
./ptyMysqlQuery "SELECT * FROM users" --mysql=production --database=mydb
# SHOW/DESCRIBE 명령
./ptyMysqlQuery "SHOW TABLES"
./ptyMysqlQuery "DESCRIBE users"
```
**출력 형식:**
1. **기본 (key:value)**: 각 행을 `컬럼명: 값` 형태로 세로 출력
2. **--table**: 컬럼 헤더와 가로 테이블 형태
3. **--json**: 전체 결과를 JSON 배열로 출력 (rows, count, elapsed_ms 포함)
4. **--dump**: INSERT INTO 구문으로 출력 (테이블명은 SQL에서 추출)
5. **--csv**: 쉼표로 구분된 값, 헤더 포함
6. **--markdown**: Markdown 표 형식
**연결 정보 표시:**
기본 모드에서는 실행 전 연결 정보를 표시합니다:
```
Section: default Host: localhost Database: mydb
SQL: SELECT * FROM users
------------------------------------------------------------
```
`--json`, `--dump`, `--csv`, `--markdown` 모드에서는 데이터만 출력합니다.
### ptyMysql* 스크립트 작성 규칙 ### ptyMysql* 스크립트 작성 규칙
새로운 MySQL CLI 스크립트 생성 시 다음 패턴을 따릅니다: 새로운 MySQL CLI 스크립트 생성 시 다음 패턴을 따릅니다:
...@@ -1170,3 +1248,77 @@ $client->setApiUrl($url); // API URL 설정 ...@@ -1170,3 +1248,77 @@ $client->setApiUrl($url); // API URL 설정
| openai | `usage.prompt_tokens` | `usage.completion_tokens` | | openai | `usage.prompt_tokens` | `usage.completion_tokens` |
| google | `usageMetadata.promptTokenCount` | `usageMetadata.candidatesTokenCount` | | google | `usageMetadata.promptTokenCount` | `usageMetadata.candidatesTokenCount` |
| ollama | `prompt_eval_count` | `eval_count` | | ollama | `prompt_eval_count` | `eval_count` |
## ptyGit* 스크립트
Git 관련 CLI 도구 모음입니다.
### ptyGitCommit - 자동 커밋 메시지 생성
Claude를 사용해서 커밋 메시지를 자동 생성하고 커밋합니다.
```bash
./ptyGitCommit [메시지] [옵션]
```
**옵션:**
| 옵션 | 설명 |
|------|------|
| `--force` | 확인 없이 바로 커밋 |
| `--push` | 커밋 후 push |
| `--help` | 도움말 출력 |
**사용 예시:**
```bash
# 자동 생성 메시지로 커밋 (확인 필요)
./ptyGitCommit
# 사용자 메시지 + 자동 생성
./ptyGitCommit "버그 수정"
# 확인 없이 커밋
./ptyGitCommit --force
# 확인 없이 커밋 + push
./ptyGitCommit --force --push
# 사용자 메시지 + 확인 없이 커밋 + push
./ptyGitCommit "기능 추가" --force --push
```
**동작 과정:**
1. `git diff`를 분석하여 Claude가 커밋 메시지 자동 생성
2. 생성된 메시지 표시
3. `--force` 없으면 사용자 확인 요청
4. 커밋 실행
5. `--push` 있으면 push 실행
**관련 파일:**
- `ptyGitCommit` - 메인 스크립트
- `ptyGitCommit.prompt` - Claude 프롬프트 파일
### ptyGitCommitAndPush - 자동 커밋 + Push
`ptyGitCommit --force --push`의 단축 명령입니다.
```bash
./ptyGitCommitAndPush [메시지]
```
**사용 예시:**
```bash
# 자동 생성 메시지로 커밋 + push
./ptyGitCommitAndPush
# 사용자 메시지 + 자동 생성 후 커밋 + push
./ptyGitCommitAndPush "버그 수정"
```
**동작:**
내부적으로 `ptyGitCommit "$@" --force --push`를 호출합니다.
...@@ -126,9 +126,10 @@ apiUrl=http://localhost:11434 ...@@ -126,9 +126,10 @@ apiUrl=http://localhost:11434
| 스크립트 | 설명 | | 스크립트 | 설명 |
|---------|------| |---------|------|
| `ptyMysqlInfo` | MySQL 서버 정보 조회 | | `ptyMysqlInfo` | MySQL 서버 정보 조회 |
| `ptyMysqlBackup` | 테이블 백업 (mysqldump) | | `ptyMysqlBackup` | 테이블 백업 (mysqldump, 기본 tgz 압축) |
| `ptyMysqlRestore` | SQL/tgz 파일 복원 | | `ptyMysqlRestore` | SQL/tgz 파일 복원 |
| `ptyMysqlOverwrite` | 서버 간 테이블 복사 | | `ptyMysqlOverwrite` | 서버 간 테이블 복사 |
| `ptyMysqlQuery` | SQL 쿼리 실행 (다양한 출력 형식 지원) |
### Elasticsearch 도구 ### Elasticsearch 도구
...@@ -146,6 +147,13 @@ apiUrl=http://localhost:11434 ...@@ -146,6 +147,13 @@ apiUrl=http://localhost:11434
| `ptyAIGetMessage` | AI API 메시지 전송 (Claude, GPT, Gemini, Ollama) | | `ptyAIGetMessage` | AI API 메시지 전송 (Claude, GPT, Gemini, Ollama) |
| `ptyAIStatistics` | AI 사용량 통계 | | `ptyAIStatistics` | AI 사용량 통계 |
### Git 도구
| 스크립트 | 설명 |
|---------|------|
| `ptyGitCommit` | Claude로 커밋 메시지 자동 생성 후 커밋 |
| `ptyGitCommitAndPush` | 커밋 메시지 자동 생성 + 커밋 + push (확인 없이) |
### 유틸리티 ### 유틸리티
| 스크립트 | 설명 | | 스크립트 | 설명 |
...@@ -163,11 +171,18 @@ apiUrl=http://localhost:11434 ...@@ -163,11 +171,18 @@ apiUrl=http://localhost:11434
### MySQL 백업/복원 ### MySQL 백업/복원
```bash ```bash
# 단일 테이블 백업 # 단일 테이블 백업 (기본 tgz 압축)
ptyMysqlBackup mydb users ptyMysqlBackup mydb users
# 전체 백업 (압축) # 와일드카드 패턴으로 백업
ptyMysqlBackup '*' '*' --tgz --output=/backup ptyMysqlBackup mydb "t_app_*" # t_app_로 시작하는 테이블
ptyMysqlBackup mydb "*_log" # _log로 끝나는 테이블
# 전체 백업
ptyMysqlBackup '*' '*' --output=/backup
# SQL 파일로 백업 (압축 안 함)
ptyMysqlBackup mydb users --no-tgz
# 복원 # 복원
ptyMysqlRestore "*" --input=/backup ptyMysqlRestore "*" --input=/backup
...@@ -178,6 +193,31 @@ ptyMysqlOverwrite --src-mysql=production --dst-mysql=development \ ...@@ -178,6 +193,31 @@ ptyMysqlOverwrite --src-mysql=production --dst-mysql=development \
--src-table=users --dst-table=users --src-table=users --dst-table=users
``` ```
### MySQL 쿼리 실행
```bash
# 기본 출력 (key:value 형태)
ptyMysqlQuery "SELECT * FROM users LIMIT 5"
# 테이블 형태
ptyMysqlQuery "SELECT * FROM users" --table
# JSON 출력
ptyMysqlQuery "SELECT * FROM users" --json
# INSERT SQL 형태
ptyMysqlQuery "SELECT * FROM users" --dump
# CSV 출력
ptyMysqlQuery "SELECT * FROM users" --csv
# Markdown 테이블
ptyMysqlQuery "SELECT * FROM users" --markdown
# 다른 섹션/DB 사용
ptyMysqlQuery "SELECT * FROM users" --mysql=production --database=mydb
```
### Elasticsearch ### Elasticsearch
```bash ```bash
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment