0
Rating
ХостТрекер
Сервис мониторинга доступности сайтов
27 January 2014

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

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

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


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



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


Мы с коллегой (fire_lizard) столкнулись с громадной базой данных, тысячи процедур, таблиц, функций и прочих полезностей. Необходим был рефакторинг, плюс новый функционал. С документацией по базе, все было не ахти, и нам пришлось разбирается 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: Если интересно, то можем написать статью по поводу работы с метаинформацией в разных базах данных.
Tags:sqlgrepmysqlпоиск метаинформацииddl searchdml searchtsql
Hubs: ХостТрекер corporate blog SQL
+26
23.7k 248
Comments 55
Information
Founded

1 February 2006

Location

Украина

Employees

2–10 employees

Registered

10 December 2013