Pull to refresh

Comments 59

Всегда пожалуйста. Только он есть (Ctrl + F DataGrip). Если честно, он меня не особо впечатлил, даже SSMS в последней версии намного интереснее. Не могли бы вы описать его киллер фичи (последний раз пробовал начать его использовать в феврале)?

И правда. Просмотрел :) Для меня главная фича в том, что он универсален. Плюс одна из удобных возможностей — редактирование данных в гриде, которые являются результатом выборки.

Редактирование данных в гриде, которые являются результатом выборки — SMSS тоже такое умеет.
Фичи здесь: https://www.jetbrains.com/datagrip/features/
А чего вам сильно не хватает? Мы учтём :) Всегда можете писать нам.

Кстати, персональная подписка стоит 99$, в посте — цена для компаний.

Спасибо за учточнение, если будут силы добавлю столбец Personal Prise.


Главный недостаток, который мешает подробно протестировать и, возможно купить, ваш продукт — это настоящий танцы с бубнами в начале работы. Для того, чтобы начать работать с SQL Server необходимо скачать драйвер к нему, размер которого (внимание) меньше 1 МБ! Проблема в чем: на моем рабочем месте нет прямого доступа в интернет в силу корпоративной политики безопасности, т.е. мне приходится идти домой, если остались силы, то искать ссылку на скачивание данного драйвера, копировать его на флэшку (упс, флэшка также корпоративная, забыл на работе) — в итоге через 30 дней истекает пробный период, а я так и не написал ни одного запроса к базе данных.


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

Из ваших двух комментариев так и не стало понятно: вы в итоге пользовалис DataGrip или не написали ни одного запроса? Тема про драйвера обсуждалась, мы придерживаемся такой логики, что не стоит поставлять сразу все драйвера для тех вещей, которыми разработчик не будет пользоваться никогда. Но вы правы, при отсутвии интернета (а это легко предсказывается в ситуации БД разработчика) всё это усложняет задачу. Мы подумаем над этим, спасибо!

Я 2-3 дня в прошлом году активно тестировал 0xDBE (предыдущее название продукта), делал 2 подхода. В первый раз меня совершенно не устроила скорость работы IDE (даже запуск на моей машине был чрезвычайно медленный), через пару месяцев установил обновленную версию — скорость работы IDE стала значительно лучше, но особенного преимущества на SSMS не ощутли (с учетом платности продукта).


В феврале 2016 пробовал протестировать актуальную на тот момент версию, но столкнулся с нехваткой времени и проблемами, описанными выше. На этой недели буду тестировать 2016.1.1.


Огромное спасибо за обратную связь!

Вам спасибо! Пишите мне, если будут вопросы.
DataGrip — это не инструмент, это «редактор SQL», к которому сбоку прикрутили дерево. Привычка из 70-ых «работать пальцами» на сегодня выглядит несколько странной, если не сказать хуже. Пальцы нужны для одной единственной вещи — вбивать имена объектов, остальные тривиальные вещи должны легко делаться мышью. (если касаться только управления таблицами)
А запросы — их сейчас только ленивый не упрощает, вплоть до визуальных конструкторов — невелика заслуга.
Я ставил инструмент в надежде, что за годы грабель индустрия СУБД хоть немного продвинулась — куда там! Те же «деревья объектов», мегабайтные всемогутеры, тысячекнопочные тулбары и полный мрак в облегчении обычных задач.
Просто идеи вам не помогут — сама концепция дырява изначально. Но если есть деньги на реализацию нового продукта, вот принципиально другой подход к работе: http://thornik.livejournal.com/401664.html
Не сочтите за apple-стиль, но в работе с базами есть МОРЕ мест, которые давно пора упростить.
Почти весь приведённый вами пост посвящён тому, что так или не так в UI для создания и модификации таблицы. В DataGrip он тоже есть, вероятно вы его не обнаружили. https://www.jetbrains.com/datagrip/features/generation.html. Это одновременно и окно для создания и генератор SQL кода — контролировать и понимать, что сейчас произойдёт в базе — важно.
Плюс вы правы, мы сильно ориентированы на тех, кто пишет запросы. Так или иначе, до сих пор огромное количество людей пишут сложные запросы с высоким уровнем вложенности, наша цель — помочь им делать это.
Вероятно то, что вы называете «обычными задачами» — это то, что нам ещё предстоит сделать, но мы всё это время работали над облегчением задач, которые кажутся «обычными» другим разработчикам. И это нормально, что это могут быть разные задачи.
> Почти весь приведённый вами пост посвящён тому, что так или не так в UI для создания и модификации таблицы.

Не только. Посмотрите на главное окно — догадайтесь, сколько сотен кликов оно будет экономить при постоянном открытии/закрытии таблиц/данных и лазания по древу (которого у меня как раз нет). Даже такая тонкость как «кликнуть ПКМ, позиционировать на пункте поп-апа, кликнуть ЛКМ» вместо «кликнуть ЛКМ — получить результат» уже достойна внимания. Наглядный, ЧИСТЫЙ интерфейс, где мне не надо читать узлы дерева «таблицы», чтобы понять где у меня таблицы. Просто поверьте незамыленному глазу — деревья — это отстой, в быстрой работе они раздражают. (не верите — спросите EMS зачем они сделали «new tab from here»)

> контролировать и понимать, что сейчас произойдёт в базе — важно.

:))))) Не, ну вы что, серьёзно думаете, что нельзя работать с БД, не влезая во все эти SQL дебри? А для чего тогда создают все эти UI? Писали бы все сразу на DDL! По-моему, тут ирония очевидна — даже зная досконально SQL, я _не_хочу_ видеть этот низкоуровневый шлак — есть задачи куда более важные. А тикнуть чекбокс «автоинкремент» куда нагляднее, чем вбивать IDENTITY.
Мне кажется, я даже попасть не смог туда, где вы создаёте таблицу — настолько ужасен и неочевиден интерфейс. Я бы на вашем месте серьёзно отнёсся к оценке человеком, который видит продукт впервые, потому что «внутренняя команда» уже привыкла, «замылилась» и не видит очевидных вещей.

> Так или иначе, до сих пор огромное количество людей пишут сложные запросы с высоким уровнем вложенности, наша цель — помочь им делать это.

Вот! Это просто другими словами то, что я сказал: DataGrip — это SQL редактор + дерево объектов. И к сожалению, насовывание везде SQL кишок никак не делает мою работу с БД приятнее/нагляднее. ОСОБЕННО когда дело касается модификаций таблиц. Так уж забавно получается, что 80% моего времени в СУБД — именно менеджмент таблиц, а запросы — либо в LINQ, либо достаточно простые — пара джойнов, да фильтр.
Я не зря сравнивал свой концепт с EMS — эти ребята «лучшие из худших» («лучших» просто нет), но даже у них нет того обилия SQL, которое есть у вас. Плюс, эта серая гамма и однообразные надписи окончательно добивают юзабилити. Вы надеюсь понимаете историю «серых окон» и их смысл?

На мой взгляд, даже если вы целый день пишете селекты, это не отменяет того, что дизайн таблиц должен быть удобным и наглядным, тем более, что структура таблиц постоянно эволюционирует. Я не буду ставить свой пример — поглядите как это делает EMS, тут даже спросонья видно, что их дизайн гораздо нагляднее датагрипа.
Я понимаю, что вам уже поздно обсуждать критику — продукт-то уже выкатили, но может быть его можно как-то «причесать», сделать опциональными SQL-кишки, упростить интерфейс — думаю, это сильно улучшило бы юзабилити.
Не нравится дерево — не пользуйтесь им! В DataGrip мы всегда можете попасть на объект по его названию или прямо из Sql-кода, да ив вообще откуда угодно, где он используется. Не используется? Всегда поможет навигация.

Насчёт IDENTITY вы правы, так у нас в DataGrip в окне создания/модификации таблицы и есть этот заветный чекбокс. Если вы не поняли, как вообще попасть в этот UI, это знак для нас, что его надо сделать более находимым, спасибо.

Критику обсуждать никогда не поздно, внести изменения можно во что угодно — благо, у нас три релиза в год.
> Не нравится дерево — не пользуйтесь им!

:) Если бы была достойная замена — я б не пользовался. До меня вообще слабо доходит связь между редактором и навигацией. Вы же оценили скрин главного окна DBQuick? Базы — в прямой видимости, без СМС и регистраций. Кликнул — получил список таблиц. «Кликнул», Карл, а не «укликался» до посинения! :)

Ну, не буду дальше рассусоливать, главная мысль: идти нужно от удобства, а не от «мы тут в редакторе всё контролируем». Тупую работу по вбиванию SQL давно уже решили десятки визуальных инструментов, по кр. мере с DDL. Это не говоря о том, что EMS, например, ещё делает некоторую работу в бэкграунде, чтобы сложные изменения сработали. Так что датагрип ещё пилить и пилить. :(
Ой, а только я терпеть не могу все эти визуальные редакторы таблиц и всегда сам пишу скрипты?))
Да, только ты. Профессионалу некогда тренировать пальцы, ему нужна таблица (как хранилище) и есть ещё море работы в коде.

Надеюсь у вас нет доступа администратора к базе данных. Если вы хотите просто щелкать мышью, не понимая что за вашими действиями происходит в базе данных, то лучше вам сразу пересесть за Starcraft или любую другую RTS. То же касается и написания запросов — если вы их пишите с помощью визуальных конструкторов (я так понимаю drag and drop) — то у вас наверное большая мазоль на правом мизинце.


И немного умерьте свой максимализм, слишком много пафоса и поучений.


Откуда я могу скачать ваше творение DBquick, которе по вашим словам захардкодено на работу с MS SQL Server, в актуальной версии (все найденные мной ссылки датируются 2013 годом)?

Да-да, точно! Ваш персональный наезд «Надеюсь у вас нет доступа» — это вежливый джентельменский разговор, а моё объяснение неудобства продукта — это «максимализм»! Спасибо, мальчик, но меня не надо учить ИТ области — я сам уже вполне могу натыкать любого. То, что твой пост про инструменты оказался халтурой и ты с соплями прибежал тут минусить — не моя вина, инфантилизм лечится только опытом.

DBQuick — пока его нигде нельзя скачать, это коммерческий концепт. Но деталей уже обнародовано предостаточно, чтобы понять суть идеи.

Ого сколько спеси и самомнения. Держите нас в курсе ваших коммерческих успехов, выкатите готовый продукт, не пожалею на него денег — куплю.


P.S. Я еще ни одного минуса на хабре не поставил (это по поводу вашего самомнения), но будете продолжать общаться в этом же духе, попадете в readonly. И, пожалуйста, не тыкайте незнакомым людям, это по меньшей мере не воспитанно.

Сильно не хватает реальной поддержки внешних ключей при редактировании данных в гриде (чтобы можно было выбирать значение для ввода из связанной таблицы). DBForge и HeidiSQL умеют.

Сделать более внятным результат Ctrl-Q в гриде. Сейчас юзабилити там сомнителен. Читать тяжело.

Не хватает продвинутых инструментов для дампа БД / таблиц. Хочется, чтобы можно было настраивать вид дампа (INSERT / REPLACE / UPDATE), управлять добавлением в дамп всяких IF EXISTS и DROP TABLE, как это делает mysqldump. Ну и быстро заливать дампы тоже хотелось бы. Я особо не разбирался в чем там дело, но Heidi у моего коллеги заливает дампы гораздо быстрее, чем DataGrip у меня.

Было бы неплохо автоматом вставлять синонимы для таблиц, чтобы запросы выглядели достойно. Например, если вы пишете
SELECT * FROM request_has_transaction
и выбрали имя таблицы из подсказки, dbForge заботливо вставит синоним и получится так:
SELECT * FROM request_has_transaction rht

и выбрали имя таблицы из подсказки, dbForge заботливо вставит синоним и получится так:

Имеется ввиду алиас?
Да, именно. Когда имена таблиц по какой-то причине длинные, с короткими алиасами гораздо удобнее читать запросы.
Спасибо за фидбек, Владислав!
1. Про внешние ключи — непонятно. Можеет поподробней описать, что вы хотите?
2. Про дампы — мы этим занялись. Скажите, какие опции для mysqldump чаще всего нужны?
3. Про алиас — хорошая идея. Я создал feature request https://youtrack.jetbrains.com/issue/DBE-2854.
1. Допустим у меня есть таблица статусов. У статуса есть целочисленный первичный ключ и текстовое описание. Есть таблица пользователей, где у каждого пользователя есть статус. Статус в этой таблице целочисленный и вы при редактировании таблицы должны всякий раз либо запоминать, какому числу какой статус соответствует, либо сверяться каждый раз с другой таблицей. Умные менеджеры БД используют внешние ключи, чтобы нарисовать пользователю комбобокс для выбора записи в таблице статусов. При этом обычно первое текстовое поле из таблицы статусов используется в качестве текста в комбобоксе. При выборе значения из бокса, в таблицу подставляется целочисленный первичный ключ, связанный с этой записью. Посмотрите на dbForge, например.

2. Я думаю, чаще всего нужен выбор варианта INSERT/REPLACE/UPDATE, выбирать поля, которые требуется экспортировать.

3. Спасибо.
1. Звучит классно, спасибо, мы обдумаем.
Собственно ссылка https://github.com/ktaranov/sqlserver-kit/tree/master/Utilities сильно полезнее копипасты таблички без описаний утилит.

Спасибо за замечание — просто переводить однообразные маркетинговые описания из разряда наша тулза самая лучшая среди лучших нет ни сил, ни желания. Кому утилита действительно интересна — зайдут на сайт автора и установят пробную версию.


Данный список делал прежде всего для себя, сверху-вниз стараюсь расположить в порядке полезности (субъективно конечно же), постараюсь в ближайшем будущем придумать объективную систему рейтинга.

Спасибо за подборку.
Но не нашел в вашем списке SQL Assistant от SoftTree.

Спасибо за SQL Assistant от SoftTree. Точно помню, что в самом начале добавлял его, видимо затер случайно. Добавлен.

Хорошая подборка, спаибо! Было бы здорово, если бы еще присутствовал тип лицензии — GPL\BSD\Проприетарная.

Спасибо, хорошая идея, постараюсь реализовать.

Добавили все продукты EMS для SQL Server, еще раз спасибо за напоминание про них.
Добавьте, пожалуйста, еще SQL Complete. ИМХО, неплохой плагин в SSMS для написания запросов T-SQL. Есть бесплатная версия с урезанными подсказками либо можно попросить лицензию в обмен на фитбек о продукте.

Спасибо, для этого есть SSMS Addins. На днях опубликую статью про SSMS Addins.


Кстати, SQL Complete — их два продукта. Один от DbForge, другой от Apex.

Как раз нет, один и тот же инструмент может иметь и платную, и бесплатную версию (конечно же, зачастую функционал бесплатной значительно урезан).

Спасибо, для этого есть SSMS Addins. На днях опубликую статью про SSMS Addins.

Вот это, конечно, странно выглядит:

LINQPad 2016-01-02 Joseph Albahari Да $45

Так «бесплатно» или «45$»? Я, конечно, зашел на сайт и увидел, что есть разные версии за разную цену. Может быть тогда назвать колонку «Есть бесплатная версия»? Ну и в колонке «цена» указать разброс «минимум-максимум» — для многих продуктов, думаю, актуально.

В английской версии файла все более однозначно. Чтобы не вводить заблуждение переименовал колонку на Бесплатная версия.


С ценами была идея подробно расписать возможные скидки и пакетные закупки. Но у всех авторов совершенно разные схемы продаж и принципы ценообразования, которые еще к тому же тяжело поддерживать в актуальном состоянии одному человеку. Поэтому решил ограничиться только одной ценой.

Особенно отличились здесь JetBrains. Я очень сильно люблю продукцию этой компании (ребята спасибо за ваш труд!), но схема с их подпиской просто взрывает могз. Наша бухгалтерия до сих пор не может согласовать закупку.

Ещё больший (и такой же бесполезный) список можно тупо нагуглить. В чём радость именно от этого списка? Что указана цена?? Никакой полезной инфы он не несёт, ибо нет даже тривиального описания, что за инструмент — «менеджер», «сравниватель», «бэкапщик» и т.п. И что, теперь читать всю эту портянку ради трёх необходимых менеджеров? Халтурная работа, извините за прямоту.
Спасибо за критику, но хотелось бы побольше коснтруктива.

> список можно тупо нагуглить

Дайте мне более полный список с протестированными и актуальными утилитами, с ценой и датой модификации, я с удовольствием возьму его за эталон.

> ибо нет даже тривиального описания

Тривиальное описание есть на Github (ссылка в начале статьи), но оно, внезапно, — тривиальное! Чтобы понять насколько действительно полезный продукт его надос скачать, установить (это не всегда просто как кажется, особенно для серьезных enterprise решений) и начать использовать на своих текущих задачах — а это все время.

> Халтурная работа, извините за прямоту.

Прямоту люблю, и чем прямее тем лучше, но не хватает примера хороших работ, чтобы на их фоне моя выглядела настоящей халтурой.

Наконец-то я понял логику 2-х минусующих — в google все есть, а данная статья маразм. Сначала я даже хотел написать подробный комментарий с детальным отчетом о затраченном времени на создании этой халтуры и объяснением всех непростых моментов по сбору данной информации, но в итоге стало жалко своего времени.

Жду информации по DBquick, возможно я слишком малограмотен, чтобы вступать в диспут с вами.
Спасибо. Ещё хорошо бы было видеть под какими ОС можно запустить инструмент.
От себя добавлю Dbeaver — неплохой бесплатный менеджер БД (в том числе и SQL Server), который работает под linux.

За бобра огромное спасибо — я даже им пользовался когда-то (правда для PostgreSQL). Добавил.


По поводу ОС: пока не будет официального релиза SQL Server для Linux (кстати, кто-нибудь пробовал Preview?) особого смысла в этой колонке не будет, т.к. на текущий момент под другими ОС из моего списка могут работать только DBeaver и DataGrip (могу, конечно же, ошибаться, может кто-то еще поддерживает другие платформы, но таких разработчиков будет очень мало). Но в будущие доработки добавил, спасибо за предложение.

Интересно послушать мнение по поводу Red Gate SQL Source Control или ещё какого средства для работы с GIT.
У нас запретили использовать его. Особенно с гитом.
Либо я вижу SQL в диффах либо это не лежит в репо. Иникаких завязок на левые тулзы.
Спасибо за вопрос. Отвечу подробнее вечром после работы.

Кратко: у Red Gate вся продукция (которая платная) очень хорошего качества, плюс одна из лучших служб поддержок, главный минус — ценник (который значительно выгодней в случае покупки пакетами). И сразу хотел бы уточнить: в GIT храните только структуру или данные тоже?

Обещанный подробный ответ.


Всего мной протестировано в свое время 3 инструмента для взаимодействия GIT и SQL Server и все они плагины к SSMS (Red Gate SQL Source Control я по ошибке вставил в инструменты, в ближайшее время перенесу в SSMS addins):



По функциональности они все очень схожи (сравнение между Red Gate и ApexSQL есть здесь, у dbForge хорошее и понятное промо видео). Советую попробовать каждый продукт в отдельности, чтобы понять покрывает он ваши нужды или нет. Лично мне больше всего понравился dbForge, но уже почему не помню. В текущей разработке ничего из этого не используем, выработали собственную схему взаимодействия с GIT. По мне цена с учетом текущего курса высоковата, на $100 пониже — тогда по моему мнению приемлемо.


Имеется еще один продукт: GITSQL, на неделе посмотрю что он умеет. Также у DataGrip заявлена поддержка систем контроля версий (We provide unified support for all major version control systems: Git, SVN, Mercurial and many others), но насколько она функциональна пока ничего не могу сказать.

GITSQL крайне глючная утилита, при этом на нее ругается защитник Windows и большинство антивирусников (пруф), поэтому прошу прощения за ее упоминание, не стоит на нее тратить время.

А какой смысл в такой подборке? Предполагается, что читатель прокликает все утилиты, чтобы понять, что каждая из них делает? Их тут 143 и по названию можно понять дай бог в 10%. Почему бы не добавить хотя бы краткое описание для каждой утилиты?

Добрый день, краткое описание есть на Github (ссылка в начале статьи), подробнее почему список представлен на данном ресурсе именно в таком ввиде в моем комментарии выше

Могу предложить добавить в список ImportExportDataSql — бесплатная утилита импорта/экспорта данных (подобие bcp, с возможностью добавления названия полей в заголовке) с удобным GUI интерфейсом и расширенными возможностями настроек полей.
Имеется командная строка.
Все настройки хранятся, локально, в XML файле.
Возможность выгрузки данных в SQL-формате, для удобства переноса данных с тестовой среды в продуктовую.
Разрабатывал её для себя, буду рад если она кому-то пригодится в работе.
Статья с подробным описанием ImportExportDataSql
Sign up to leave a comment.

Articles