JetBrains приближается к релизу новой IDE для работы с SQL и базами данных. Мы запустили EAP программу год назад и благодарим всех её участников. Как всегда, ваши мнения и пожелания сделали наш продукт лучше.
Мы рады представить вам 0xDBE 1.0 Preview. Это отличный шанс попробовать нашу новую IDE и поделиться впечатлениями, что поможет нам сделать 0xDBE ещё лучше к моменту релиза.
![](https://habrastorage.org/r/w1560/files/119/627/a5b/119627a5bf45438a901ae1a4f4d3c095.png)
Нам нравится название 0xDBE, но оно всё же рабочее, и к релизу мы выберем другое — более читаемое.
Ещё мы хотим лучше узнать наших пользователей и понять, как вы работаете с базами данных, поэтому составили небольшой опрос. Просим пройти его, на это уйдёт 5-8 минут. Среди тех, кто принял в нём участие, мы разыграем десять годовых лицензий на 0xDBE.
Итак, вот что мы добавили с момента запуска EAP:
Быстрая и точная интроспекция
В первую очередь, мы переработали алгоритм получения мета-информации о базе данных и расширили стандартную JDBC-интроспекцию для большинства поддерживаемых СУБД. Помимо увеличения скорости это привело к улучшениям в графическом интерфейсе — теперь объекты базы данных сгруппированы по типам:
![](https://habrastorage.org/r/w1560/files/020/940/61e/02094061ee1743049fc97fbd6b51fccc.png)
Управление объектами БД
При нажатии Ctrl+F6 (Cmd-F6 для OS X) на имени таблицы в текстовом редакторе или в окне Database view открывается окно Modify Table, в котором можно добавлять и удалять столбцы, менять их свойства, добавлять и удалять ключи и индексы. В реальном времени генерируется DDL-скрипт, который будет выполнен для этих изменений:
![](https://habrastorage.org/r/w1560/files/255/59a/0d7/25559a0d7cb840e493608ea25fa8a46a.png)
Текстовый поиск
Теперь доступен текстовый поиск по результату запроса. Например, вам нужно найти данные, а столбец забыли. Есть поддержка регулярных выражений:
![](https://habrastorage.org/r/w1560/files/37f/dc6/03f/37fdc603f3174f698cf03e45a04da626.png)
Кодогенерация запросов
По нажатию Alt+Ins (Cmd-N для OS X) в текстовом редакторе доступна генерация DDL-запросов. В появившемся окне вы можете создавать таблицы, функции и процедуры на основе графического интерфейса. Если курсор находится внутри существующего DDL-запроса, IDE предлагает изменить столбец, добавить ключ или индекс.
Получившийся код вставится в текстовый редактор или сразу выполнится в базе данных:
![](https://habrastorage.org/files/bf5/7b7/8c7/bf57b78c77664a41b48737cc843ffaaf.gif)
Когда вы собираетесь вставить данные, используя несколько идущих подряд предложений INSERT, эти данные можно редактировать в виде таблицы ещё до вставки. Если вы добавите строчку в эту виртуальную таблицу, ещё одно предложение INSERT сгенерируется в редакторе.
![](https://habrastorage.org/r/w1560/files/bbe/f4c/e38/bbef4ce387254d128848a04fbd750028.png)
Консоли запросов
Мы вынесли открытие новой консоли в отдельный пункт меню. Перемещайтесь между несколькими консолями в окне Files, через меню Recent Files, в Navigation toolbar или по Ctrl+Tab. У каждой консоли есть переключатель контекста — меняйте схему для выполнения скрипта, не создавая новую консоль:
![](https://habrastorage.org/r/w1560/files/3b3/149/5dd/3b31495ddedc4cd9ad4ecf512427d00e.png)
История изменений
IDE локально хранит историю изменения каждого файла. В смежных окнах можно сравнить версии и откатиться к любой из них:
![](https://habrastorage.org/r/w1560/files/5f6/279/988/5f62799883e341cab1da9898d1e013a8.png)
Исполнение запросов
Выполнение выделенного блока кода теперь работает не только в консолях, но и в файлах. Также вы можете выбрать, как IDE должна поступить в этом случае: выполнять выделенный блок как один запрос, выполнять блок как несколько запросов, или попытаться самой определить, что делать, и выполнить валидный скрипт, даже если вы выделили нерабочий кусок кода:
![](https://habrastorage.org/r/w1560/files/546/4ca/8f4/5464ca8f458040d785a68850198bd181.png)
Ещё мы добавили опций для запуска запроса из консоли. Если курсор стоит внутри сложного выражения, IDE может выполнять только подзапрос, выполнять весь запрос, или спрашивать, какой из доступных запросов выполнить:
![](https://habrastorage.org/r/w780q1/files/111/ab2/743/111ab2743c4e44b0a7d6243545302e21.jpg)
Если курсор стоит вне SQL-кода, то также есть три опции: IDE может выполнить все запросы в файле, выполнить только запросы ниже курсора или не делать ничего.
Выполнение запросов из Structure view
По нажатию Ctrl+Enter (Cmd-Enter для OS X) запрос выполняется прямо из окна Structure view. Это удобно, если вам нужно быстро выполнить только некоторые запросы из файла:
![](https://habrastorage.org/r/w1560/files/459/612/587/4596125876de42e59cfa3cb6c0f6b12b.png)
План выполнения
Для запросов доступен план выполнения:
![](https://habrastorage.org/r/w1560/files/ce2/708/aad/ce2708aad81f46409cd2622ad1b27c5c.png)
Сравнение результатов запросов
Результаты выполнения двух запросов возможно сравнить в смежных окнах. IDE подсвечивает разницу и позволяет изменять строгость критерия оценки равенства строк. То есть, если вы хотите считать равными строки, которые отличаются данными только в одном (или более, на выбор) столбце, это указывается в значении параметра Tolerance. Любой столбец также может быть исключён из процесса сравнения:
![](https://habrastorage.org/r/w1560/files/a08/af3/a62/a08af3a62cdf4a948c4820526d288dd4.png)
Поддержка формата CSV
Для редактирования CSV-файлов или других табличных данных в тексте выберите пункт Edit as Table из контекстного меню. Откроется окно настроек, в котором вы можете указать разделитель, определить, есть ли в файле заголовки, в каких случаях брать значения в кавычки и т. д. Данные из файла сразу отобразятся в виде превью таблицы:
![](https://habrastorage.org/r/w1560/files/2a1/0fe/42d/2a10fe42d4f546799a3a0ddd8eb9f2d3.png)
Настройки запросов с параметрами
Мы обновили окно настроек параметризированных запросов, которое находится в
Settings → Database → User Parameters. Теперь подсвечиваются регулярные выражения, а также есть возможность выбирать диалект, в котором будут использоваться шаблоны:
![](https://habrastorage.org/r/w1560/files/b39/3ec/3d1/b393ec3d1c194d3eb48bf7802aefd4bc.png)
Диаграммы
Вы можете смотреть диаграммы с наглядным отображением зависимостей между объектами:
![](https://habrastorage.org/r/w1560/files/e8a/652/880/e8a652880b64491d8613a44654383f7b.png)
Улучшенная навигация по объектам БД
Для того чтобы перейти к любому объекту базы, нажмите Ctrl+N (Cmd-O для OS X) и введите его имя в текстовое поле. Если это таблица, вы увидите табличный редактор, а если функция или процедура, откроется редактор с DDL-скриптом для её изменения:
![](https://habrastorage.org/files/b28/d21/a34/b28d21a346b143b4a23e26e20986f3b0.gif)
Плагины по умолчанию из Intellij IDEA теперь могут быть установлены в 0xDBE. Это Terminal, Git, Subversion и другие.
В дополнение ко всему, мы улучшили поддержку HiDPI для Windows и Linux, добавили Distraction Free mode — режим, в котором вы видите только текстовый редактор, а также сделали много других небольших улучшений.
Мы планируем релиз нашей IDE для SQL-разработчиков на середину ноября. Она будет доступна в рамках JetBrains Toolbox, как «Single IDE», а также как часть пакета «All Products».
Будем рады ответить на любые вопросы!
Мы рады представить вам 0xDBE 1.0 Preview. Это отличный шанс попробовать нашу новую IDE и поделиться впечатлениями, что поможет нам сделать 0xDBE ещё лучше к моменту релиза.
![](https://habrastorage.org/files/119/627/a5b/119627a5bf45438a901ae1a4f4d3c095.png)
Нам нравится название 0xDBE, но оно всё же рабочее, и к релизу мы выберем другое — более читаемое.
Ещё мы хотим лучше узнать наших пользователей и понять, как вы работаете с базами данных, поэтому составили небольшой опрос. Просим пройти его, на это уйдёт 5-8 минут. Среди тех, кто принял в нём участие, мы разыграем десять годовых лицензий на 0xDBE.
Итак, вот что мы добавили с момента запуска EAP:
Быстрая и точная интроспекция
В первую очередь, мы переработали алгоритм получения мета-информации о базе данных и расширили стандартную JDBC-интроспекцию для большинства поддерживаемых СУБД. Помимо увеличения скорости это привело к улучшениям в графическом интерфейсе — теперь объекты базы данных сгруппированы по типам:
![](https://habrastorage.org/files/020/940/61e/02094061ee1743049fc97fbd6b51fccc.png)
Управление объектами БД
При нажатии Ctrl+F6 (Cmd-F6 для OS X) на имени таблицы в текстовом редакторе или в окне Database view открывается окно Modify Table, в котором можно добавлять и удалять столбцы, менять их свойства, добавлять и удалять ключи и индексы. В реальном времени генерируется DDL-скрипт, который будет выполнен для этих изменений:
![](https://habrastorage.org/files/255/59a/0d7/25559a0d7cb840e493608ea25fa8a46a.png)
Текстовый поиск
Теперь доступен текстовый поиск по результату запроса. Например, вам нужно найти данные, а столбец забыли. Есть поддержка регулярных выражений:
![](https://habrastorage.org/files/37f/dc6/03f/37fdc603f3174f698cf03e45a04da626.png)
Кодогенерация запросов
По нажатию Alt+Ins (Cmd-N для OS X) в текстовом редакторе доступна генерация DDL-запросов. В появившемся окне вы можете создавать таблицы, функции и процедуры на основе графического интерфейса. Если курсор находится внутри существующего DDL-запроса, IDE предлагает изменить столбец, добавить ключ или индекс.
Получившийся код вставится в текстовый редактор или сразу выполнится в базе данных:
![](https://habrastorage.org/files/bf5/7b7/8c7/bf57b78c77664a41b48737cc843ffaaf.gif)
Когда вы собираетесь вставить данные, используя несколько идущих подряд предложений INSERT, эти данные можно редактировать в виде таблицы ещё до вставки. Если вы добавите строчку в эту виртуальную таблицу, ещё одно предложение INSERT сгенерируется в редакторе.
![](https://habrastorage.org/files/bbe/f4c/e38/bbef4ce387254d128848a04fbd750028.png)
Консоли запросов
Мы вынесли открытие новой консоли в отдельный пункт меню. Перемещайтесь между несколькими консолями в окне Files, через меню Recent Files, в Navigation toolbar или по Ctrl+Tab. У каждой консоли есть переключатель контекста — меняйте схему для выполнения скрипта, не создавая новую консоль:
![](https://habrastorage.org/files/3b3/149/5dd/3b31495ddedc4cd9ad4ecf512427d00e.png)
История изменений
IDE локально хранит историю изменения каждого файла. В смежных окнах можно сравнить версии и откатиться к любой из них:
![](https://habrastorage.org/files/5f6/279/988/5f62799883e341cab1da9898d1e013a8.png)
Исполнение запросов
Выполнение выделенного блока кода теперь работает не только в консолях, но и в файлах. Также вы можете выбрать, как IDE должна поступить в этом случае: выполнять выделенный блок как один запрос, выполнять блок как несколько запросов, или попытаться самой определить, что делать, и выполнить валидный скрипт, даже если вы выделили нерабочий кусок кода:
![](https://habrastorage.org/files/546/4ca/8f4/5464ca8f458040d785a68850198bd181.png)
Ещё мы добавили опций для запуска запроса из консоли. Если курсор стоит внутри сложного выражения, IDE может выполнять только подзапрос, выполнять весь запрос, или спрашивать, какой из доступных запросов выполнить:
![](https://habrastorage.org/files/111/ab2/743/111ab2743c4e44b0a7d6243545302e21.jpg)
Если курсор стоит вне SQL-кода, то также есть три опции: IDE может выполнить все запросы в файле, выполнить только запросы ниже курсора или не делать ничего.
Выполнение запросов из Structure view
По нажатию Ctrl+Enter (Cmd-Enter для OS X) запрос выполняется прямо из окна Structure view. Это удобно, если вам нужно быстро выполнить только некоторые запросы из файла:
![](https://habrastorage.org/files/459/612/587/4596125876de42e59cfa3cb6c0f6b12b.png)
План выполнения
Для запросов доступен план выполнения:
![](https://habrastorage.org/files/ce2/708/aad/ce2708aad81f46409cd2622ad1b27c5c.png)
Сравнение результатов запросов
Результаты выполнения двух запросов возможно сравнить в смежных окнах. IDE подсвечивает разницу и позволяет изменять строгость критерия оценки равенства строк. То есть, если вы хотите считать равными строки, которые отличаются данными только в одном (или более, на выбор) столбце, это указывается в значении параметра Tolerance. Любой столбец также может быть исключён из процесса сравнения:
![](https://habrastorage.org/files/a08/af3/a62/a08af3a62cdf4a948c4820526d288dd4.png)
Поддержка формата CSV
Для редактирования CSV-файлов или других табличных данных в тексте выберите пункт Edit as Table из контекстного меню. Откроется окно настроек, в котором вы можете указать разделитель, определить, есть ли в файле заголовки, в каких случаях брать значения в кавычки и т. д. Данные из файла сразу отобразятся в виде превью таблицы:
![](https://habrastorage.org/files/2a1/0fe/42d/2a10fe42d4f546799a3a0ddd8eb9f2d3.png)
Настройки запросов с параметрами
Мы обновили окно настроек параметризированных запросов, которое находится в
Settings → Database → User Parameters. Теперь подсвечиваются регулярные выражения, а также есть возможность выбирать диалект, в котором будут использоваться шаблоны:
![](https://habrastorage.org/files/b39/3ec/3d1/b393ec3d1c194d3eb48bf7802aefd4bc.png)
Диаграммы
Вы можете смотреть диаграммы с наглядным отображением зависимостей между объектами:
![](https://habrastorage.org/files/e8a/652/880/e8a652880b64491d8613a44654383f7b.png)
Улучшенная навигация по объектам БД
Для того чтобы перейти к любому объекту базы, нажмите Ctrl+N (Cmd-O для OS X) и введите его имя в текстовое поле. Если это таблица, вы увидите табличный редактор, а если функция или процедура, откроется редактор с DDL-скриптом для её изменения:
![](https://habrastorage.org/files/b28/d21/a34/b28d21a346b143b4a23e26e20986f3b0.gif)
Плагины по умолчанию из Intellij IDEA теперь могут быть установлены в 0xDBE. Это Terminal, Git, Subversion и другие.
В дополнение ко всему, мы улучшили поддержку HiDPI для Windows и Linux, добавили Distraction Free mode — режим, в котором вы видите только текстовый редактор, а также сделали много других небольших улучшений.
Мы планируем релиз нашей IDE для SQL-разработчиков на середину ноября. Она будет доступна в рамках JetBrains Toolbox, как «Single IDE», а также как часть пакета «All Products».
Будем рады ответить на любые вопросы!