...

понедельник, 27 января 2014 г.

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

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

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




Нахождение зависимостей объектов в БД.

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





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




Мы с коллегой столкнулись с громадной базой данных, тысячи процедур, таблиц, функций и прочих полезностей. Необходим был рефакторинг, плюс новый функционал. С документацией по базе, все было не ахти, и нам пришлось разбирается 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: Если интересно, то можем написать статью по поводу работы с метаинформацией в разных базах данных.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Комментариев нет:

Отправить комментарий