개발자들이 여러 Git 워크트리(worktree)를 활용해 동시에 다양한 브랜치 작업을 진행할 때, 로컬 개발 데이터베이스(DB) 충돌로 인한 불편함이 컸습니다. 한 워크트리에서 DB 스키마를 변경하는 마이그레이션을 실행하면, 다른 워크트리에서 사용하는 DB 스키마까지 바뀌어 예상치 못한 오류를 유발하거나 수동으로 DB를 관리해야 하는 번거로움이 있었습니다. 이러한 문제를 해결하기 위해 'wtdb'라는 새로운 오픈소스 도구가 등장했습니다.
wtdb는 개발자가 `git worktree add` 명령으로 새 워크트리를 생성할 때 자동으로 여러 작업을 수행합니다. 먼저, 기존 개발 DB를 새 워크트리 이름으로 복사하여 독립적인 DB를 만듭니다. 현재는 PostgreSQL을 지원하며, `CREATE DATABASE ... TEMPLATE` 기능을 활용해 거의 즉각적으로 복사가 이루어집니다. 또한, `.env`나 `.dev.vars`와 같은 환경 변수 파일을 새 워크트리로 복사하고, DB 연결 URL이 새로 생성된 DB를 가리키도록 자동으로 수정합니다. `node_modules`처럼 Git이 무시하는(ignored) 디렉토리도 빠른 복사-온-라이트(copy-on-write) 방식으로 복제하여, 새 워크트리에서 바로 개발을 시작할 수 있도록 돕습니다.
이 도구는 여러 브랜치에서 동시에 DB 스키마 변경이 필요한 복잡한 작업을 수행하는 개발자들에게 특히 유용합니다. 각 워크트리가 완전히 분리된 DB 환경을 가지게 되므로, 마이그레이션 충돌 걱정 없이 독립적으로 개발을 진행할 수 있어 생산성이 크게 향상됩니다. wtdb는 `wtdb init` 명령으로 저장소에 `.wtdb.json` 설정 파일을 추가하고 `wtdb install`로 Git 훅(hook)을 설치하는 방식으로 간단하게 사용할 수 있으며, `wtdb prune` 명령으로 사용하지 않는 워크트리의 DB를 정리할 수도 있습니다. 현재는 PostgreSQL만 지원하지만, DB 레이어가 인터페이스로 설계되어 있어 다른 데이터베이스 지원도 확장될 수 있습니다.