Lazysql Когда база данных встречается с терминалом в стиле Lazygit

29 Jun, 2026
4,051
🔱 181
👥 23

Знакома ситуация?

Представьте: вы с головой погружены в код, терминал открыт на полную, IDE работает в фоновом режиме, и тут... бац! Нужно срочно проверить данные в базе, выполнить пару запросов или поправить запись. Что делаем? Обычно переключаемся в какой-нибудь тяжеловесный GUI-клиент, ждем его загрузки, кликаем по вкладкам, а потом с таким же усилием возвращаемся в терминал. Знакомо? Мне — очень.

А что, если бы существовал инструмент, который позволил бы управлять базами данных прямо из вашей любимой консоли, быстро, интуитивно, и при этом выглядел бы современно? Именно такую нишу пытается заполнить проект Lazysql.

Встречайте Lazysql: TUI-клиент, который ждали

В мире Git у многих разработчиков есть свой фаворит для работы в терминале — Lazygit. Это TUI-клиент, который превращает взаимодействие с Git в нечто удивительно быстрое и удобное. А что, если бы что-то подобное существовало для баз данных? Именно этот вопрос задал себе автор Lazysql, Хорхе Рохас, и, не найдя подходящего решения, решил создать его сам. И, надо сказать, у него получилось очень достойно!

Lazysql — это кросс-платформенный (macOS, Windows, Linux) инструмент для управления реляционными базами данных, написанный на Go. Он создан для тех, кто живет в терминале, ценит скорость и не хочет отвлекаться на переключение контекста между различными приложениями. Это не просто просмотрщик, это полноценный менеджер, позволяющий подключаться, выполнять запросы, просматривать, фильтровать, вставлять и редактировать данные.

Выбор соединения в Lazysql

Реклама

Интерфейс Lazysql

Что умеет этот "ленивый" SQL-клиент?

Несмотря на стадию "альфа", Lazysql уже обладает впечатляющим набором функций, которые делают его очень полезным в повседневной работе:

Кросс-платформенность и Vim-биндинги

Первое, что бросается в глаза — это кросс-платформенность. Независимо от того, работаете ли вы на Mac, Windows или Linux, Lazysql готов к работе. А для любителей Vim-а здесь настоящий праздник: навигация и управление реализованы с использованием привычных Vim-биндингов (j, k, h, l, g, G). Это значит, что вы сможете перемещаться по таблицам и соединениям, как по тексту в любимом редакторе, не отрывая рук от клавиатуры. Если вы привыкли к такой модели взаимодействия, скорость работы вырастет в разы.

Многозадачность: вкладки и соединения

В моей практике часто бывает, что нужно одновременно работать с несколькими базами данных или даже с разными таблицами одной и той же базы. Lazysql это умеет! Он позволяет управлять несколькими подключениями и переключаться между ними, а также работать с вкладками внутри одного соединения. Забудьте о куче открытых окон или переключении между десятками вкладок браузера или GUI-клиента. Здесь все под рукой, в одном окне терминала.

Встроенный SQL-редактор

Куда же без SQL-редактора? Lazysql предлагает встроенный редактор, который открывается по CTRL + e. Пишите запросы, выполняйте их (CTRL + R) и тут же видите результат. Это очень удобно для быстрых проверок или выполнения админских команд. Кстати, если результат запроса — это таблица, она отобразится прямо под редактором, и вы сможете легко переключаться между ними. Для Linux-пользователей есть даже возможность открыть запрос во внешнем редакторе (CTRL + Space), что может быть очень кстати для объемных SQL-скриптов.

Магия команд: SSH-туннели и не только

Вот это, пожалуй, одна из самых крутых и недооцененных фич Lazysql! Часто для доступа к удаленной базе данных нужно сначала поднять SSH-туннель или выполнить kubectl port-forward для доступа к базе в Kubernetes-кластере. Обычно это делается вручную в отдельном окне терминала. Lazysql позволяет автоматизировать этот процесс, определяя команды прямо в файле конфигурации для каждого соединения.

Представьте, что вы можете настроить подключение, которое автоматически:

  • Открывает SSH-туннель к удаленному бастиону.
  • Ждет, пока порт станет доступным.
  • Сохраняет вывод команды в переменную (например, whoami в ${user}).
  • Использует эти переменные для формирования URL подключения.

Это просто спасение для DevOps-инженеров и разработчиков, работающих со сложными инфраструктурами! Никаких больше ручных танцев с бубном перед каждым подключением к продакшену.

Пример конфигурации с туннелем:

[[database]]
Name = 'Production database'
Provider = 'postgres'
DBName = 'foo'
URL = 'postgres://${user}:urlencodedpassword@localhost:${port}/foo'
ReadOnly = true
Commands = [
  { Command = 'ssh -tt remote-bastion -L ${port}:localhost:5432', WaitForPort = '${port}' },
  { Command = 'whoami', SaveOutputTo = 'user' },
]

Под капотом: Go и свежий взгляд

Интересно, что Lazysql написан на Go, а это, между прочим, первый Open Source и первый Go-проект автора. Хорхе, по его собственным словам, обычный JavaScript-разработчик, который просто хотел освоить новый язык и решить свою проблему. И этот пример отлично демонстрирует, как желание решить собственную боль может привести к созданию по-настоящему полезного инструмента для сообщества. Использование Go обеспечивает высокую производительность и кросс-платформенность, а библиотека tview делает TUI-интерфейс таким отзывчивым и приятным.

Как начать работать с Lazysql?

Установка Lazysql максимально проста:

  • Для macOS/Linux через Homebrew:
    brew install lazysql
    
  • Через Go package manager:
    go install github.com/jorgerojas26/lazysql@latest
    
  • Бинарные релизы: Скачайте готовый бинарник для вашей ОС с GitHub-релизов.
  • Arch Linux: Доступно в AUR (paru -S lazysql или yay -S lazysql).

После установки достаточно запустить lazysql в терминале, и вы увидите список доступных соединений или сможете создать новое. Не забудьте настроить config.toml для удобства работы с вашими базами данных. Кстати, все горячие клавиши можно посмотреть, нажав ? прямо в приложении.

Lazysql поддерживает PostgreSQL, MySQL, SQLite и MSSQL, а в планах — расширение поддержки, в том числе и для NoSQL баз данных.

Зачем это нужно именно вам? Практические сценарии

  • Быстрые проверки и отладка: Нужно срочно проверить данные в таблице или выполнить SELECT после деплоя? Lazysql справится с этим быстрее, чем любой GUI-клиент.
  • DevOps и системные администраторы: Автоматизация подключений к базам данных через SSH-туннели или kubectl port-forward — это просто подарок, который сэкономит часы времени.
  • Разработчики-полиглоты: Если вы работаете с разными типами баз данных и не хотите держать по отдельному приложению для каждой, Lazysql станет универсальным решением.
  • Любители терминала: Если вы цените скорость, эффективность и минимализм, то Lazysql идеально впишется в ваш рабочий процесс.
  • Для обучения: Хотите освоить Go или поглубже разобраться с TUI-приложениями? Изучите исходный код Lazysql — это отличный пример.

Вердикт: Стоит ли дать Lazysql шанс?

Безусловно! Lazysql — это свежий глоток воздуха для тех, кто устал от тяжеловесных GUI-клиентов и хочет максимизировать свою продуктивность в терминале. Это инструмент, который не просто работает, а вдохновляет. Он постоянно развивается, и уже сейчас предлагает уникальные возможности, такие как автоматизация SSH-туннелей, которые редко встретишь в других решениях.

Если вы любите терминал, работаете с базами данных и цените свое время, дайте Lazysql шанс. Возможно, он станет вашим новым незаменимым помощником, как когда-то Lazygit стал для работы с Git.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.