А вы тоже ищете зависимости в SQL вручную? Тогда мы идем к вам! SQL Dynamite, поиск по объектам базы

в 9:42, , рубрики: ddl search, dml search, grep, mysql, sql, tsql, Администрирование баз данных, Блог компании ХостТрекер, поиск метаинформации, метки: , , , , , ,

Привет, уважаемые Хабро-читатели и SQL-писатели. Команда ХостТрекера хочет поделиться полезной утилитой для SQL разработчиков и администраторов.

Какую задачу решаем?

Нахождение зависимостей объектов в БД.
Поиск по строке в метаданных БД (хранимых процедурах, View, пользовательских функциях, определениях таблиц, индексах, ключах)

А вы тоже ищете зависимости в SQL вручную? Тогда мы идем к вам! SQL Dynamite, поиск по объектам базы

Откуда взялась идея

Мы с коллегой столкнулись с громадной базой данных, тысячи процедур, таблиц, функций и прочих полезностей. Необходим был рефакторинг, плюс новый функционал. С документацией по базе, все было не ахти, и нам пришлось разбирается co схемой базы самостоятельно. Это был сущий ад.
На второй неделе мы поняли, что нахрапом бастион не взять.
Вспоминая свое славное Юниксовое прошлое, я начал немного скучать по утилите grep, и мы решили, что нам нужно такое же, но «без крыльев» для SQL метаданных.

Сказано – сделано.

Первая версия была написана за неделю и слава о ней разлетелась по всему отделу разработки. Она была заточена под MS SQL и работала из командной строки.
Вдохновившись откликом от коллег, мы немного причесали утилиту, пририсовали ей UI, сделали подсветку вхождений и подсветку синтаксиса. Назвали SQL Dynamite (только не спрашивайте почему динамит, так получилось ;-)
Затем народ нас стал спрашивать про поддержку других баз. Как в любой уважающей себя крупной организации, у нас был целый зоопарк различных БД. Следуя пожеланиям трудящихся, и собственному живому интересу к SQL, мы понемногу разобрались со структурой схем разных баз.
Да еще в процессе разработки стало интересно пощупать .NET на предмет кроссплатформенности. Оказалось, все неплохо. Слегка поработав напильником, сделали проект под Mono, и программа заработала под теплым ламповым Linux-ом и Mac OS X.

Возможности

  • Поиск вхождений в имени или тексте хранимых процедур, функций, триггеров, таблиц и индексов, ключей;
  • Поиск с использованием шаблонов (синтаксис LIKE %,_);
  • Задание объектов для поиска;
  • Отображение тела найденных объекта в виде DDL;
  • Подсветка синтаксиса;
  • Подсветка найденной строки в теле объекта;
  • Хранение истории поиска;
  • Работа с несколькими базами.

Поддерживаемые DB

  • MS SQL;
  • MySql;
  • Oracle;
  • SQL Azure;
  • Sybase ASE;
  • Sybase Anywhere;
  • Ingress;
  • PostgreSQL;
  • IBM DB/2;
  • Firebird.

Планы

  • Добавить сохранение DDL по найденным объектам в файл
  • Добавить рюшечки в UI
  • Сделать поиск сразу по нескольким базам
  • Показ найденных объектов в виде дерева с группировкой по типу объекта
  • Редактирование найденных объектов
  • Автозамена

Где взять?

Последняя версия лежитздесь. Пользуйтесь на здоровье.

Будем рады любому фидбеку в виде комментариев, критики и багрепортов и добавления новых фич.
PS: Если интересно, то можем написать статью по поводу работы с метаинформацией в разных базах данных.

Автор: temaHT

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js