TableStudio로 로컬 데이터베이스 관리하기
TableStudio는 이 Mac에서 데이터베이스 서버를 관리하며, Homebrew나 Postgres.app에서 가져온 서버도 포함합니다. 수동 Docker 명령이나 initdb보다 TableStudio 도구를 선호하세요. 결과가 사용자의 앱에 저장된 연결로 표시됩니다.
로컬 데이터베이스 "연결 거부" 오류
connection_status(인수 없이 모든 연결을 보고). 쿼리를 실행하지 않으므로 데이터베이스가 다운되어도 작동하며, 연결을 백업하는 로컬 서버가 있는지와 해당 서버가 실행 중인지 알려줍니다.- 서버가 중지된 경우, 반환된
instance_id로start_local_database를 호출하세요. 서버가 이미 실행 중일 때 호출해도 안전합니다. - 포트가 다른 무언가에 의해 사용 중인 경우, 오류가 해당 점유자를 알려줍니다. 사용자에게 알리고 프로세스를 종료하지 마세요.
list_local_databases는 모든 로컬 항목(관리되는 서버, 가져온 서버, SQLite 파일, TableStudio가 관리하지 않지만 포트를 점유한 서버)을 보여줍니다. 두 가지 ID를 기억하세요: instance_id는 서버(시작 및 중지에 사용), connection_id는 쿼리하는 데이터베이스입니다. 서로 바꿔 쓸 수 없습니다.
새 데이터베이스 만들기
create_local_database에 name과 engine을 전달하세요:
sqlite: 설치가 필요 없으며 즉시 생성됩니다. 사용자가 데이터를 저장할 공간만 원할 때 선호하세요.postgres,mysql,clickhouse: 해당 엔진의 서버 바이너리가 Mac에 이미 설치되어 있어야 합니다. TableStudio는 어떤 것도 번들로 제공하지 않으며, 누락된 경우 도구가 알려줍니다. 설치 힌트를 전달하고 요청 없이 소프트웨어를 설치하지 마세요.
TableStudio 도구를 통해 쿼리할 수 있는 connection_id와 프로젝트용 env_line(DATABASE_URL=…)을 반환합니다. 그 다음:
- 사용할 env 파일(
.env,.env.local)이.gitignore에 포함되어 있는지 확인하세요. 그렇지 않으면 먼저 추가하세요. - 해당 파일에
env_line을 넣되, 프로젝트가 이미 읽는 변수 이름(DATABASE_URL또는 설정에 필요한 이름)을 사용하세요. - 그에 대해 프로젝트의 마이그레이션(및 시드가 있다면 그것도)을 실행하세요.
연결 문자열을 채팅에 반복해서 표시하지 말고, 코드, 문서 또는 커밋에 절대 작성하지 마세요.
사용자가 요청하지 않는 한 stop_local_database를 정리 목적이나 포트 해제를 위해 호출하지 마세요. 이 명령은 해당 서버를 사용하는 모든 연결(사용자의 창 포함)을 끊습니다.
기존 로컬 데이터베이스의 연결 문자열
프로젝트가 TableStudio가 이미 알고 있는 로컬 데이터베이스에 접근해야 할 때(누락된 .env를 채우거나 테스트를 샌드박스로 연결하기 위해), get_connection_url을 connection_id와 함께 호출하고 위와 같이 env_line을 사용하세요.
- TableStudio가 생성한 데이터베이스, 샌드박스, 암호가 없는 로컬 데이터베이스는 항상 사용 가능합니다.
- 사용자가 자신의 암호로 저장한 로컬 연결은 허용한 경우에만 공유됩니다. 그렇지 않으면 거부 메시지가 설정 이름을 알려줍니다: 그 내용을 전달하거나 사용자가 직접 env 파일에 값을 붙여넣도록 하세요. 채팅에서 암호를 요청하지 마세요.
- 원격 데이터베이스, SSH 터널, 프로덕션으로 태그된 모든 것은 절대 공유되지 않습니다. 이러한 경우 TableStudio 도구를 사용하세요.
실험용 안전 복사본 만들기
create_sandbox는 모든 연결의 일회용 로컬 복사본을 만듭니다(원본은 읽기 전용):
data: "none": 스키마만 복사합니다. DDL 시도에 가장 적합합니다.data: "sample": 테이블당 최대rows행을 복사합니다. 실제 행에 대해 데이터 수정을 확인하는 데 가장 적합합니다.data: "fake": 행을 생성합니다.
샌드박스의 connection_id에 대해 원하는 작업을 수행하세요. 사용자는 한 번의 클릭으로 폐기하며, 당신은 삭제할 수 없습니다. 이전에 만든 샌드박스를 재사용하려면 list_sandboxes를 사용하세요.
PostgreSQL 확장
list_extensions는 서버가 설치할 수 있는 확장과 이미 설치된 확장을 보여줍니다. add_extension은 하나를 설치합니다(CREATE EXTENSION IF NOT EXISTS). 이를 스키마 변경으로 취급하세요: 공유 또는 프로덕션 데이터베이스에서는 실행하기보다 제안하세요. 그리고 저장소에 마이그레이션 도구가 있다면 다른 환경도 가져갈 수 있도록 거기에 추가하세요.