pgtools: IDE для ежедневной работы с PostgreSQL
Автор pgtools рассказывает, зачем создал бесплатную настольную IDE, какие рабочие задачи она решает и какая обратная связь нужна проекту.
pgtoolsPostgreSQLEXPLAINБлокировкиСравнение схемОбычно здесь всё происходило с Максом. Сегодня напишу я.
Меня зовут Дмитрий. Я веду этот канал и уже довольно давно делаю pgtools — свою IDE для PostgreSQL.
Канал молчит четыре месяца. Я влез в большой дополнительный проект, свободного времени стало сильно меньше. Но pgtools я не бросил. Иногда вечером открываю список задач с намерением поправить один баг, а через два часа обнаруживаю, что добавляю очередную настройку.
Рассказать о программе здесь я собирался давно. И каждый раз находилась причина отложить.
То кнопка стоит не там.
То окно выглядит недостаточно аккуратно.
То надо сначала доделать ещё одну функцию.
То кажется, что человек скачает приложение, посмотрит пять минут и молча удалит.
Последний вариант почему-то пугал сильнее всего.
В какой-то момент пришлось признать неприятную вещь: я могу улучшать программу ещё несколько лет и всё равно найду, что в ней переделать.
Поэтому вот.
Представляю pgtools — бесплатное desktop-приложение для ежедневной работы с PostgreSQL.
Не революцию в управлении базами данных. Не убийцу существующих клиентов. Просто программу, которую я сам хотел иметь под рукой на работе.
В ней можно писать и выполнять SQL-запросы, работать сразу с несколькими базами, смотреть результаты в таблице, редактировать данные и другие привычные вещи.
Редактор сделан на Monaco. Есть подсветка, автодополнение таблиц и полей, тёмная и светлая темы.
Есть графический и текстовый просмотр EXPLAIN. Планы сохраняются в истории вместе с запросами. Иногда это помогает в некоторых ситуациях.
Есть просмотр сессий и блокировок. Дерево блокировок строится в самом приложении. Я специально сделал локальное построение без рекурсивных запросов к базе. Когда в базе уже несколько тысяч ожидающих процессов, последнее, что хочется сделать, — отправить туда ещё один сложный запрос, который тоже зависнет.
Есть сравнение двух баз или схем. Полезно, когда есть несколько контуров и надо найти отличие.
Есть поиск по таблицам, полям, комментариям, функциям и представлениям. В больших старых базах комментарий иногда оказывается полезен чтобы понять, что автор вообще имел в виду.
Есть история запросов и DDL. Она хранится локально, без ограничения глубины.
Есть инструмент для удаления и пересоздания зависимых объектов. Он появился когда мне понадобилось изменить тип поля в таблице, от которой зависело больше двухсот представлений. PostgreSQL честно сообщил, что сделать этого не позволит. А отсутствие решений в интернете и затем пара часов ручной работы сообщили, что такой инструмент точно нужен.
Теперь pgtools умеет строить дерево зависимостей, сохранять скрипты отката, удалять зависимые представления и пересоздавать их после изменения исходного объекта.
Кроме этого, есть:
— история DDL для объектов;
— встроенные системные запросы;
— работа в нескольких окнах в том числе в сплит-режиме;
— автоматический мониторинг блокировок;
— шифрованное хранение подключений с мастер-паролем;
— перенос настроек и истории между рабочими компьютерами.
Сейчас программой пользуются несколько моих коллег.
Обычно обратная связь выглядит не как торжественный отзыв, а как сообщение в рабочем чате:
Неудобно копировать строчки в таблице.
Или:
Хотелось бы при просмотре DDL матвью видеть также их индексы
Или просто скриншот с красной ошибкой без пояснений.
На самом деле это лучшая обратная связь. После неё приложение становится чуть менее моим и чуть больше пригодным для других людей.
Скачать pgtools можно здесь:
Мне сейчас нужны не слова поддержки и не оценка идеи.
Мне нужны люди, которые установят программу и попробуют сделать в ней обычную рабочую задачу.
Подключитесь к тестовой базе. Откройте несколько вкладок. Выполните запрос. Посмотрите план. Найдите блокировку. Сравните две схемы.
А потом напишите мне одну вещь, которая раздражает. Одну вещь, из-за которой захотелось закрыть программу и вернуться в привычный клиент.
С этого и начнём.
А Макс ещё вернётся. Теперь у него появился инструмент, с которым он сможет гораздо быстрее выяснить, кто именно положил production. Даже если это был он.