Как настроить VS Code для Git и базы данных: пошагово
Настроим рабочее место для проекта с PostgreSQL: GitLens покажет историю изменений, SQLTools подключит базу, а SQL-файлы и миграции останутся частью репозитория. Основа инструкции — VS Code 1.95 и Git 2.45.

За 20–30 минут вы настроите VS Code для проекта, где SQL-запросы, миграции и исходный код хранятся в Git. GitLens даст историю изменений прямо в редакторе, SQLTools подключит PostgreSQL без отдельного клиента, а файл .gitignore не позволит случайно отправить пароль или дамп базы в репозиторий.
Что понадобится до начала
- VS Code 1.95 или новее;
- Git 2.45 или новее;
- доступ к PostgreSQL 16 или совместимой версии: локальной базе, тестовому серверу или контейнеру;
- папка проекта, уже клонированная из Git;
- имя хоста, порт, база данных и пользователь PostgreSQL. Пароль лучше не записывать в файлы проекта.
Проверить версии можно в терминале командами code --version и git --version. Если команды code нет, откройте VS Code вручную: это не мешает работе расширений.
Термин. Миграция — версия изменения схемы базы: например, добавление таблицы или индекса. В отличие от произвольного SQL в клиенте, миграцию можно сохранить в Git и применить к нескольким окружениям в одном порядке.
Главное правило: в Git должны попадать инструкции, которые меняют структуру базы, но не секреты и не рабочие данные.
Какие расширения установить
Откройте боковую панель Extensions в VS Code и установите расширения по точным идентификаторам или названиям. Для этой схемы нужны:
| Расширение | Задача | Что проверять после установки |
|---|---|---|
| GitLens — Git supercharged | История файла и строки, сравнение коммитов, сведения об авторе изменения | В панели Source Control появилась история, а в редакторе доступно меню GitLens |
| SQLTools | Подключение к базе, просмотр таблиц и выполнение SQL из VS Code | Появилась панель SQLTools |
| SQLTools PostgreSQL/Cockroach Driver | Драйвер соединения SQLTools с PostgreSQL | В списке типов подключения доступен PostgreSQL/CockroachDB |
GitLens использует идентификатор eamodio.gitlens, SQLTools — mtxr.sqltools, драйвер PostgreSQL — mtxr.sqltools-driver-pg. Устанавливайте расширения из Marketplace внутри VS Code, а не из случайных архивов. Версии расширений обновляются независимо от VS Code, поэтому перед установкой смотрите совместимость в карточке расширения.
- Откройте репозиторий. Выберите File → Open Folder и укажите корневую папку проекта. Убедитесь, что в ней виден каталог
.gitили что Source Control показывает текущую ветку. Проверка: в панели Source Control отображается имя ветки и список изменённых файлов либо сообщение, что изменений нет. - Установите GitLens. Найдите расширение GitLens — Git supercharged, проверьте издателя и нажмите Install. Включите представление Commit Graph, если оно доступно в вашей версии. Проверка: откройте любой отслеживаемый файл, нажмите правой кнопкой и найдите команды GitLens, связанные с историей файла и строки.
- Установите SQLTools и драйвер. Сначала установите SQLTools, затем SQLTools PostgreSQL/Cockroach Driver. Перезагрузка VS Code обычно не требуется, но после обновления расширений она помогает убрать состояние старого процесса. Проверка: на левой панели появилась иконка SQLTools, а при создании соединения предлагается тип PostgreSQL/CockroachDB.
- Создайте соединение с тестовой базой. Откройте SQLTools, нажмите Add New Connection и выберите PostgreSQL/CockroachDB. Укажите имя соединения, сервер, порт, базу, пользователя и способ ввода пароля. Для первого подключения используйте тестовую базу, а не рабочую. Проверка: команда проверки соединения завершается без ошибки, а в дереве SQLTools отображаются схемы или таблицы.
- Создайте каталог для SQL. В корне проекта заведите, например,
db/queriesдля проверочных запросов иdb/migrationsдля изменений схемы. Откройте новый файл с расширением.sql, выберите созданное соединение и выполните запрос через кнопку запуска в редакторе SQLTools. Проверка: в нижней панели появился результат запроса с колонками или сообщением об успешном выполнении. - Проверьте изменения через GitLens. Сохраните SQL-файл, откройте Source Control и сравните рабочую копию с последним коммитом. В GitLens посмотрите историю этого файла. Проверка: в diff видны только добавленные строки запроса, а история показывает коммит, в котором файл появился или изменился.
- Защитите секреты и данные. Добавьте в корневой
.gitignoreлокальные настройки, дампы и файлы окружения:
# Локальные секреты и настройки
.env
.env.*
!.env.example
# Дампы и локальные данные базы
*.sql.gz
*.dump
*.bak
# Локальные настройки редактора
.vscode/
Если часть настроек VS Code нужна всей команде, не игнорируйте весь каталог .vscode: добавьте в репозиторий только согласованные файлы, например форматирование, а секреты храните отдельно. Проверка: после сохранения тестового файла выполните проверку изменений в Source Control и убедитесь, что пароль, дамп и локальный конфиг не появились среди файлов для коммита.
Как работать с запросами и миграциями
Запросы для проверки
Разовые диагностические запросы храните отдельно от миграций. В имени файла указывайте назначение, например db/queries/check_duplicate_emails.sql. Это облегчает ревью: коллега понимает, что запрос только читает данные, а не меняет структуру базы.
Перед запуском смотрите активное соединение в SQLTools. В VS Code можно открыть сразу несколько подключений, и ошибка выбора базы опаснее, чем ошибка синтаксиса: запрос может выполниться успешно, но не там, где вы ожидали.
Миграции
Миграцию сохраняйте отдельным файлом в порядке, который принят в вашем проекте: например, с номером или временной меткой в имени. Не редактируйте уже применённую миграцию задним числом. Если схема требует исправления, создайте следующую миграцию, чтобы история изменений оставалась воспроизводимой.
SQLTools помогает выполнить запрос, но не заменяет миграционный инструмент приложения. Если проект использует Django migrations, Rails migrations, Flyway, Liquibase или другой механизм, запускайте изменения штатной командой проекта, а SQLTools оставляйте для проверки и диагностики.
Если не получилось
- Connection refused. PostgreSQL не запущен, указан неправильный хост или закрыт порт. Проверьте адрес и порт у владельца окружения, а для локальной базы — состояние сервиса.
- password authentication failed for user. Сервер доступен, но имя пользователя или пароль не подходят. Не вставляйте пароль в настройки проекта: повторно введите его через защищённый способ подключения и уточните права пользователя.
- database does not exist. Сервер найден, но базы с таким именем нет. Сверьте имя базы с настройками приложения и убедитесь, что подключаетесь к нужному окружению.
- Cannot find module или драйвер не появляется в списке. Установлен SQLTools без драйвера PostgreSQL либо расширение отключено. Откройте карточки обоих расширений, проверьте статус Enabled и перезапустите окно VS Code.
- Запрос выполняется не в той базе. В редакторе выбран другой активный connection profile. Остановите выполнение, выберите правильное соединение и добавьте в имя профиля окружение: например, test или staging.
Что сделать дальше
Добавьте в репозиторий .env.example без паролей: только названия переменных, которые нужны приложению. Затем попросите коллегу проверить новую миграцию на чистой тестовой базе и посмотреть diff в GitLens.
В проде наблюдайте не только за успешным выполнением SQL, но и за временем запроса, блокировками и планом выполнения. Подключение из VS Code удобно для разработки, однако опасные изменения схемы должны проходить через ваш штатный процесс миграций и ревью.
IT-архитектор / SQL-оптимизатор: Поиск N+1, оптимизация запросов, code review, поиск багов.
Спросить за 20 ₽Источники: Visual Studio Code: Extension Marketplace, SQLTools documentation
Частые вопросы
Можно ли использовать SQLTools с MySQL или SQLite?
Почему GitLens не показывает историю файла?
Что делать, если у меня другая версия VS Code или PostgreSQL?
Безопасно ли подключаться к рабочей базе из VS Code?
Что делать, если запрос из SQLTools не сработал?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.