
저는 Tmux 및 Vim과 함께 psql을 사용하고, Vim을 사용하여 쿼리를 편집하고 다른 Tmux 창에서 psql로 보내는 것을 좋아합니다. 이것은 제 생각에는 DBeaver와 같은 GUI보다 훨씬 뛰어난 환상적인 작업 흐름입니다.하지만:
psql이 결과를 멋지게 표시할 수 없는 데에는 많은 열이 필요하지 않으며 psql 출력의 래핑된 행은 비참해 보입니다.
지금까지 내 옵션은 다음과 같습니다.
확장 모드
\x
JSON 객체처럼 한 번에 하나씩 행을 볼 수 있습니다 . 이것은 괜찮지만 행을 서로 비교하는 데는 좋지 않습니다.
글꼴을 더 작게 만드세요
때로는 즐겁게 두들겨 패면서 ctrl -
결과를 한 줄에 표시할 수 있을 만큼 멀리 축소할 수도 있습니다. 말할 필요도 없이 이것은 실제로 실행 가능한 솔루션이 아닙니다.
tmux가 긴 줄 끝을 자르도록 만듭니다.
보여진 바와 같이여기Tmux가 행을 래핑하는 대신 행을 자르도록 하는 것이 가능합니다.
처음 몇 개의 열에만 관심이 있다면 이는 좋습니다. 그러나 실제로는 지속 가능한 작업 방식이 아닙니다. 마지막에 열을 비교하고 싶다면 어떻게 해야 하나요?
넓은 테이블을 보는 방식이 매우 부적절하다고 GUI를 사용하는 동료가 나를 비웃지 않을 방법을 찾을 수 있는 사람이 있습니까?
psql이나 Tmux에만 국한될 필요는 없습니다. 어쩌면 터미널을 일반적으로 더 넓게 만드는 방법 일 수도 있습니다.
답변1
고려하다pspg- PostgreSQL 개발자 Pavel Stěhule이 만든 호출기입니다.
이 호출기는 주로 터미널 데이터베이스 클라이언트용으로 설계되었습니다. 오른쪽으로 스크롤하는 동안 열을 고정하는 등 테이블 형식 데이터를 페이징하는 데 편리한 많은 기능이 있습니다. pspg는 github 프로젝트 페이지의 예에 표시된 것처럼 다른 db 클라이언트 또는 csv 파일과 함께 사용할 수 있습니다.
pspg 사용을 시작하려면 pspg를 설치하고 환경에 PAGER 또는 PSQL_PAGER를 내보냅니다(프로젝트 페이지에서 가져옴).
#for Postgres 10 and older
export PAGER="pspg"
#for postgres 11 and newer
export PSQL_PAGER="pspg"
또는 다음을 추가하세요.~/.psqlrc
\setenv PAGER pspg
psql 셸을 다른 쿼리에 대비하면서 분할 창에서 호출기를 여는 데 관심이 있을 수도 있습니다.
~/bin/pspg-래퍼
#!/usr/bin/env bash
if [[ $TMUX ]]
then
tempfile=$(mktemp)
cat - > "$tempfile"
tmux splitw -p 50 "pspg $tempfile"
unlink "$tempfile"
else #
pspg -F
fi
~/.psqlrc
\setenv PAGER ~/bin/pspg-wrapper
psql이 실행 중인 경우티먹스그럼 열어봐pspg분할 창에서는 그렇지 않으면 pspg를 실행하세요. -F
출력이 단일 화면에 맞는 경우 stdout에서 직접 인쇄하는 것을 의미합니다.
답변2
에 따라이 댓글less -S
호출기로 사용하여 왼쪽/오른쪽 스크롤을 얻을 수 있습니다 .
psql은 envvar를 존중하므로 PAGER
왼쪽/오른쪽 스크롤을 달성하는 효과가 적은 좋은 방법은 다음과 같은 별칭을 만드는 것입니다.
alias psql="PAGER='less -S' psql"
이를 통해 왼쪽/오른쪽 키를 사용하여 psql 출력에서 넓은 테이블을 이동할 수 있습니다. 이것은 나에게 꽤 좋은 해결책처럼 보입니다.