Каталог решений - SQLPad для удобной работы с запросами к SQL серверу

SQLPad для удобной работы с запросами к SQL серверу

SQLPad для удобной работы с запросами к SQL серверу

В наличии

В этой статье описывается веб-приложение SQLPad для работы с запросами к SQL серверу.

Категория:

Описание

Хочу рассказать о своем опыте работы с SQLPad — это приложение для хранения списка запросов и выполнения их. Почему то в моем окружении нет людей, которые бы знали о нем. Делюсь информацией. Впервые этот SQLPad я увидел в середине прошлого года на вебинаре известного в узких кругах Алексея Лустина (в данный момент он отсутствует на инфостарте, поэтому привожу ссылку на старое интервью с ним — Готовые решения: Алексей Лустин. Выпуск №2).

SQLPad — это веб-приложение, выглядит так:

По должности я очень много работаю с SQL запросами. SQLPad значительно упрощает мою работу за счет сохранения списка запросов и простого запуска запросов "из одного окна" к разным SQL серверам.

Сайт проекта sqlpad.github.io.

Разработчики приложения декларируют поддержку серверов Postgres, MySQL, SQL Server, ClickHouse, Crate, Vertica, Presto, Pinot, Drill, SAP HANA, Snowflake, BigQuery, SQLite. Внушительный список, правда? Я обычно работаю только с SQL Server от Microsoft, но кому то из моих коллег возможно будет интересно подключить приложение к Postgres.

Статья состоит из двух основных частей — использование приложения и установка его в docker.

Использование приложения

Это веб-приложение, оно живет на сервере, доступ к нему осуществляется через браузер. Обычно оно доступно на порту 3000.

Авторизация. Работа с пользователями.

Мое тестовое приложение находится на localhost. По адресу http://localhost:3000/ открывается окно авторизации. Первым должен зайти админ (кнопка Sign In), которого мы укажем при начальной настройке приложения. Кнопка Sign Up может ввести в заблуждение, потому что позволяет зарегистрироваться только пользователю, которого  администратор предварительно укажет в списке пользователей.

Пользователей указываем на странице Users. Обязательно указание роли — Admin или Editor, админ может редактировать пользователей и подключения.

Не забываем, что после добавления пользователя он должен пройти процедуру Sign Up на странице авторизации.

Подключения к SQL серверам.

Можно добавлять неограниченное количество подключений. В разделе Connections нажимаем на Add connection, указываем тип сервера (SQL от Misrosoft называется просто SQL Server), заполняем авторизацию, сохраняем настройки.

Создание и выполнение запросов

Запрос можно написать самостоятельно, есть подсказки.

Можно вставить из буфера обмена.

Запрос можно сохранить, указав произвольные теги.

Запросам можно добавлять простые диаграммы.

К сохраненным запросам можно обратиться из списка Queries. Один и тот же запрос можно выполнять на разных серверах.

Если изменить уже сохраненный запрос и не сохранить его изменения, при вызове такого запроса приложение покажет разницу в запросах и спросит, использовать сохраненный вариант или новый.

Установка в Docker

Я устанавливаю/запускаю SQLPad в Docker — сейчас это быстро и удобно. Приведу цитату из Вики:

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.

Docker хорошо работает и на Windows. 

1. Нужно установить Docker Desktop.

Установка относительно проста, делается инсталлятором с Install Docker Desktop on Windows. Единственное, на что хочу обратить внимание — SQLPad лучше работает WSL2 (Windows Subsystem for Linux — слой совместимости для запуска Linux-приложений).

Если чекбокс "Use the WSL 2 based engine" у вас неактивен — потратьте немного времени и последуйте инструкциям Docker Desktop WSL 2 backend и Windows Subsystem for Linux Installation Guide for Windows 10, чтобы запустить у себя эту подсистему, поверьте, усилия себя оправдают.

2. Скачаем образ SQLPad c DockerHub, для этого в командной строке выполним следующее:

docker pull sqlpad/sqlpad

После этого в приложении docker у вас появится доступный для использования образ.

3. Теперь можно вручную запустить контейнер с приложением, как показано на рисунке ниже, но это не удобно, нужно указывать параметры:

Мы воспользуемся приложением docker-compose. Смысл этого приложения в том, что контейнер создается автоматически по специальному описанию из текстового файла docker-compose.yaml. Ну а текстовые файлы мы любим, их можно прочитать и записать в обычном редакторе, версионировать в git. И конечно хранение описания контейнера в тексте приближает нас к концепции — "Всё есть код".

Я привожу пример файла, создающего только SQLPad, однако в этом файле можно описать и другие контейнеры, они все будут запущены одновременно.

Разберу некоторые моменты в этом файле.

container_name: my_sqlpad

указываем произвольное имя контейнера, будет полезно, если вы запускаете одновременно несколько с разными параметрами

image: "sqlpad/sqlpad"

указываем использование  образа SQLPad для создания контейнера

ports:

      — 3000:3000

пробрасываем порт 3000 внутри образа. Если порт 3000 в хосте занят, можно указать другой порт, например 4000:3000 будет означать, что к веб-приложению снаружи мы обращаемся по порту 4000, тогда как в самом контейнере оно будет по прежнему работать на порту 3000

environment:

      — SQLPAD_ADMIN=yuriy.bylinkin@gmail.com

      — SQLPAD_ADMIN_PASSWORD=secret

Чтобы не возиться с заведением первоначального пользователя, укажем нужного пользователя при создании контейнера, я указал свой емейл и свой любимый (нет конечно) пароль

volumes:

      — ./sqlpad_storage:/var/lib/sqlpad

Это самое интересное. Здесь мы указываем, что база данных и настроечные файлы приложения SQLPad будет фактически находиться на хосте — в папке sqlpad_storage, находящейся там же, где и сам файл docker-compose

Последний параметр нам позволяет при пересоздании контейнера docker (например при перезагрузке Windows), подхватить имеющиеся настройки.

Очень удобно, собственно это и позволяет нам использовать это приложение с docker в продуктиве. Я переносил папку на другие компьютеры и на них заново созданный контейнер с SQLPad успешно работал с ней, таким способом я фактически переносил список сохраненных запросов из одного окружения в другое, нужно было только сделать другое соединение с SQL сервером.

Переходим в папку с файлом docker-compose и выполняем команду

docker-compose up -d

В приложении Docker Desktop в разделе Containers/Apps появился наш контейнер

Он расположен в группе git, потому что мой docker-compose файл находится в этой папке, имеет то название и порт, которые мы ему дали.

Теперь просто запускаем в браузере http://localhost:3000/ (или IP-адрес или доменное имя компьютера, на котором подняли контейнер), авторизуемся и начинаем лить слезы счастья.

К статье приложен пример файла docker-compose, однако это обычный текстовый файл, вы можете написать его самостоятельно.

has been added to your cart:
Оформление заказа