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

11.01.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Файл docker-compose для создания docker-образа SQLPad
.yaml 0,30Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

Хочу рассказать о своем опыте работы с 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

См. также

DevOps для 1С DevOps и автоматизация разработки Программист Стажер Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

2500 руб.

20.06.2023    22262    2    4    

310

SALE! 50%

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

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 2450 руб.

29.06.2022    11930    99    4    

131

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

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

2160 руб.

05.08.2024    1275    12    1    

7

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    12552    10    10    

35

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

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

2400 руб.

04.07.2022    8367    38    1    

29

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

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

1800 руб.

20.01.2022    7783    19    0    

13

DevOps и автоматизация разработки Программист Платформа 1С v8.3 Бесплатно (free)

В проектной разработке часто возникают проблемы с однообразностью ландшафта, производительностью и быстрой разверткой инфраструктуры. Об одном из способов избежать или изолировать данные проблемы с помощью контейнеризации расскажем в статье.

18.09.2024    1720    antonov_av    6    

14

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

Когда информационная база «весит» несколько десятков/сотен гигабайт, для разработки и тестирования обычно используют полную копию рабочей базы. Но если информационная база превышает несколько терабайт, такой подход сталкивается с нехваткой места на диске, долгой реструктуризацией, замедленной скоростью работы и другими проблемами, связанными с размером базы. В статье расскажем, как правильно готовить копии больших баз для разработки и тестирования.

28.08.2024    6583    yuraid    28    

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