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

11.01.21

Разработка - DevOps и автоматизация разработки

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

Скачать исходный код

Наименование Файл Версия Размер
Файл docker-compose для создания docker-образа SQLPad
.yaml 0,30Kb
2
.yaml 0,30Kb 2 Скачать

Хочу рассказать о своем опыте работы с 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, однако это обычный текстовый файл, вы можете написать его самостоятельно.

SQLPad SQL Docker Devops

См. также

Автотесты для типовых конфигураций ERP Управление предприятием 2 и Комплексная автоматизация 2 (для vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.15.111.

2220 руб.

04.07.2022    6937    26    1    

24

Автотесты для типовых конфигураций Бухгалтерия предприятия КОРП 3.0 и Бухгалтерия предприятия 3.0 (vanessa automation)

Тестирование QA DevOps и автоматизация разработки Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.144.49.

1728 руб.

20.01.2022    6710    10    0    

9

Системы контроля версий для 1С-разработчиков.

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Платформа 1С v8.3 Платные (руб)

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9388    78    4    

112

Управление сборкой. Расширение для конфигурации СППР

DevOps и автоматизация разработки Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

7000 руб.

26.08.2022    10775    7    5    

30

Автоматическое подтверждение легальности обновления базы или как обновить 100 типовых баз 1С за 5 часов

DevOps и автоматизация разработки Обновление 1С Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Расширение для конфигураций 1С для автоматического подтверждения легальности обновления и выполнения обработчиков обновления при пакетном автоматическом обновлении большого числа баз 1С. А также сам модуль обработки по автоматическому обновлению баз.

2 стартмани

08.05.2019    24402    56    VPanin56    26    

27

1С, СППР и Архитектура как код

DevOps и автоматизация разработки Бесплатно (free)

Можно ли идеи подхода «Архитектура как код» положить на 1С или иную платформу, чтобы не изобретать ещё какой-то язык и сразу получить множество готовых библиотек функций и инструмент достижения главной цели подхода AaC.

01.02.2024    2739    roman72    9    

8

TCP прокси-сервер хранилища конфигурации 1С

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Платформа 1С v8.3 Бесплатно (free)

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    3008    kamisov    17    

60

Infrastructure as code: кнопка «Сделать всё», или Упаковываем наше окружение в 5 кБ текста

DevOps и автоматизация разработки Бесплатно (free)

Когда под каждый проект нужно развернуть отдельный стенд разработки и сборочную линию для его обслуживания, велик риск влияния человеческого фактора. О том, как зафиксировать инженерный опыт в скриптах и унифицировать необходимые настройки для автоматизированного разворачивания инфраструктуры с помощью Terraform и Ansible, пойдет речь в статье.

01.11.2023    1391    Libelle    5    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. It-developer 24 12.01.21 16:26 Сейчас в теме
А есть вообще конструктор SQL запросов?
2. ardn 627 13.01.21 09:42 Сейчас в теме
(1) Тут нет конструктора.
3. Ul_developer 21.01.21 06:38 Сейчас в теме
А есть возможность просмотра плана выполнения запроса?
4. ardn 627 09.02.21 10:37 Сейчас в теме
(3) в этом приложении нет, но никто не мешает нам скопировать его и передать в supratimas
NorraSaltolinen; +1 Ответить
5. w.r. 644 24.03.21 17:26 Сейчас в теме
Убогое приложение. Видно, что написано на коленке на Java Script. У MS для своей SQL есть SQL Server Development Tools, который в разы функциональнее
Оставьте свое сообщение