История изменений DBGate
Версия 3.0 от 07.05.2024
Важные изменения:
- Для работы требуется ASP.NET Core 8.0.
- С версии 3.0 не поддерживается Microsoft Internet Explorer.
- DBGate 3.0 не включает поставщики данных для Oracle Database, NuoDB и SQLite (их можно установить отдельно).
- Ключ
EditRoots
стал секцией и включает корневые сегменты и соответствующие им страницы. СекцияEditPages
удалена. - Для работы клиента JavaScript требуется поддержка модулей JavaScript.
- Установочные пакеты DBGate включают новые настройки приложения и файлы каталога wwwroot. Мы исключили примеры, чтобы можно было начать работать без дополнительных настроек.
Новые возможности:
- Новый мастер setup.exe позволяет настраивать веб-сайты и приложения IIS, сервисы Windows и сертификаты SSL в Windows.
- DBGate включает новый пакет с установщиком для Windows.
Мы рекомендуем использовать в Windows именно его. - DBGate включает схему аутентификации JWT и настройку страниц входа и регистрации новых пользователей.
- DBGate позволяет аутентифицировать пользователей хранимыми процедурами с поддержкой ролей пользователей.
Например, можно разрешить пользователям самостоятельно регистрироваться в приложении как покупателю или продавцу и использовать соответствующие ролиbuyer
с разными возможностями. - DBGate автоматически заменяет тег
<base href="/" />
для приложений IIS.
Соответственно, можно использовать один и тот же каталог wwwroot для веб-сайтов и приложений IIS, сервисов Windows и консольных приложений. - Разработчики могут настроить изменение имен объектов для сервиса в секции
ApiNameReplacements
настройки подключения.
Например, можно изменить имя "view_money_transactions" на "transactions". - DBGate автоматически определяет наличие SSL сертификата в Windows и использует конечные точки HTTPs.
- DBGate автоматически перенаправляет на конечные точки HTTPs, если обслуживаются конечные точки HTTP и HTTPs.
- DBGate позволяет настроить порт по умолчанию.
- Обработчики
WhereByDefault
позволяют задать колонки, которые по умолчанию используются в качестве фильтров. - Обработчики
HideByDefault
позволяют задать колонки и параметры, скрытые по умолчанию. - DBGate позволяет изменять сервер, базу данных и порт для подключения (если разрешено).
Например, можно использовать адрес типа/edit/mssql:db.savetodb.com,1433,AzureDemo100/
для подключения к базе данныхAzureDemo100
на сервереdb.savetodb.com
по порту 1433. - Домашняя страница подключений к базам данных
master
,mysql
иpostgres
позволяет выбрать доступную базу данных на сервере. - Клиент JavaScript поддерживает темную тему.
- Клиент JavaScript отображает панель слева для быстрого подключения к любому объекту.
- Клиент JavaScript позволяет фильтровать таблицы.
- Клиент JavaScript позволяет использовать виды таблиц (используйте надстройку SaveToDB для создания и сохранения видов).
- Клиент JavaScript отображает иконку с описанием таблицы из базы данных.
Улучшения:
- DBGate поддерживает имя подключения как первый сегмент.
Сейчас поддерживаются оба варианта: /<root>
/<connection>
/<query>
и /<connection>
/<root>
/<query>
.
Например: https://dbgate/edit/mssql/ и https://dbgate/mssql/edit/. - Обработчики
DoNotAddValidationLists
отключают также автоматическое создание списков значений параметров. - Схема таблиц настройки приложений используются для поиска объектов без заданных схем.
- Тип tinyint(1) MySQL трактуется как boolean.
- DBGate определяет типы колонок хранимых процедур по объектам сохранения изменений.
- DBGate возвращаем массив имен колонок для пустых результатов хранимых процедур с неизвестным набором выходных колонок.
- Поле
RowNumber
скрыто по умолчанию. - DBGate поддерживает переменную среды
ASPNETCORE_WEBROOT
для определения папкиwebroot
. - DBGate позволяет задать базовый путь приложения ASP.NET в свойстве
ApplicationPathBase
. - DBGate позволяет обслуживать конечные точки API при отсутствии папки
wwwroot
.
Исправленные ошибки:
- MySqlConnectorNet в Linux вызывает исключение, связанное с _dataCache.
- DBGate не экранирует переводы строк в мета-данных.
Версия 2.7 от 12.07.2023
Улучшения:
- Улучшена обработка исключений.
Версия 2.6 от 10.04.2023
Улучшения:
- DBGate позволяет использовать объекты MySQL с пустыми схемами. В этом случае используется схема активного соединения.
- Повышена производительность загрузки метаданных SQL Server.
Версия 2.5 от 21.02.2023
Новые возможности:
- DBGate генерирует списки значения на основе значений ENUM MySQL и PostgreSQL.
- DBGate поддерживает тип данных SET MySQL.
- DBGate преобразует данные MySQL binary(16) и varbinary(16) в формат GUID при наличии в COLUMN_DEFAULT функций uuid_to_bin(uuid()), uuid_to_bin(uuid(),0) или uuid_to_bin(uuid(),1).
Улучшения:
- DBGate использует поставщик данных MySql.Data.MySqlClient, установленный в системе.
До этого использовался поставщик, поставляемый с приложением.
Данное решение позволяет устанавливать и использовать наиболее свежую версию поставщика:
https://dev.mysql.com/downloads/connector/net/ - DBGate выполняет динамическую замену отсутствующего поставщика данных MySql.Data.MySqlClient на встроенный поставщик MySqlConnector.
- Улучшена производительность получения метаданных MySQL 8.
Исправленные ошибки:
- Подключение к MySQL 8 с использованием поставщика данных MySql.Data.MySqlClient вызывает различные исключения.
Версия 2.4 от 23.01.2023
Улучшения:
- Обновлены примеры приложений на 2023 год.
- Обновлены поставщик данных .NET и .NET Framework для Snowflake.
- Обновлена утилита регистрации.
Версия 2.3 от 13.12.2022
Улучшения:
- DBGate позволяет использовать страницы редактирования, специфичные для языка.
- DBGate включает специальные страницы редактирования для упрощенного китайского, традиционного китайского, японского и корейского языков.
- DBGate включает новую темную тему.
- Примеры и пакеты SaveToDB Framework выпущены под лицензией MIT.
Версия 2.2 от 05.10.2022
Исправленные ошибки:
- Значения типа даты и времени SQLite и MySQL через поставщиков .NET выводятся в виде строк.
Версия 2.1 от 17.08.2022
Критические изменения:
- DBGate не активирует сохранение изменений для представлений, процедур и SQL кода на основе соединения нескольких таблиц.
Для сохранения изменений таких объектов следует вручную задать целевую таблицу в таблице xls.objects. - Поля представлений и процедур на основе нескольких таблиц помечаются как расчетные.
- Контекстные параметры для клиентских приложений включаются в состав полей объектов (например, rownum).
Улучшения:
- Перевод в SQLite и SQL Server Compact с пустыми схемами и именами объектов добавляется в схему Default.
- Улучшено определение полей для списков значений (понижен приоритет Guid и Char(36)).
- $orderby= возвращает данные без сортировки по умолчанию.
Исправленные ошибки:
- DBGate отключает сохранение процедурами, если задан обработчик изменений _change.
- DBGate не сохраняет изменения данных из форм JSON.
- Не работает редирект на домашнюю страницу при изменении свойства base страниц HTML.
Версия 2.0 от 05.07.2022
DBGate включает измененное Лицензионное соглашение.
Наиболее важное изменение:
"Приобретая Программу от имени вашей компании, вы даете неявное согласие на указание имени вашей компании как нашего клиента.
Вы можете отозвать ваше согласие в любой момент, направив запрос по электронной почте".
Новые возможности:
- Добавлена документация DBGate на русском языке.
- DBGate включает новое Руководство разработчика.
- DBGate доступен на упрощенном китайском, традиционном китайском, японском и корейском языках.
- DBGate поддерживает языковые коды длиной до 10 символов. Например, можно использовать zh-cn, zh-hans и zh-hans-cn. zh-hans и zh-hant являются предпочтительными для китайского языка.
- DBGate поддерживает SQL код во всех таблицах настройки.
- DBGate поддерживает .NET Framework 4.7.2.
- DBGate поддерживает провайдер Microsoft.Data.SqlClient.
- DBGate поддерживает пакетные запросы POST /$batch, совместимые с OData.
- DBGate поддерживает конечные точки управления приложением: /api/$stop, /api/$show, /api/$hide.
Для включения поддержки команд, установите StopEnabled в true в файле настроек приложения. - DBGate поддерживает параметр $reloadMetadata=true в HTTP запросах для обновления метаданных базы данных.
Пользователи могут нажать Ctrl и кликнуть на кнопке Reload для обновления метаданных в клиента JavaScript. - DBGate поддерживает параметр $distinct=true для возврата данных запросов SELECT DISTINCT.
- DBGate поддерживает параметр $orderby в URL запроса.
- DBGate поддерживает параметр $groupby в URL запроса.
- DBGate поддерживает параметр $iscount=true в URL запроса для возврата значения SELECT COUNT(*).
- DBGate поддерживает параметр $binaryAsHex в URL запроса и параметр binaryAsHex в заголовке Prefer.
- DBGate поддерживает параметр $bigNumbersAsString в URL запроса и параметр bigNumbersAsString в заголовке Prefer.
- DBGate поддерживает параметр $dateTimeAsDateTimeOffset в URL запроса и заголовке Prefer.
- DBGate поддерживает параметры $timezone и $timezoneoffset в URL запроса и заголовке Prefer.
- Настройки DBGate в файле конфигурации выделены в группы DBGate и DBGateW.
- DBGate поддерживает новые опции в файле конфигурации:
MaxPageSize, UppercaseNamesInLowercase, DisableEditPageCache, BinaryAsHex, BigNumbersAsString, FunctionPrefixes, FunctionSuffixes, TraceSQL, StopEnabled. - DBGate поддерживает новые опции в разделах строк подключения в файле конфигурации:
AllowDatabaseChange, Offline, Home. - DBGate поддерживает конечные точки в формате /schema/name/{id} для выборки единственной записи по значению первичного ключа.
- DBGate добавляет заголовок "dbgate-version: 2.0".
- DBGate добавляет заголовок для отключения кэширования:
Cache-control: no-cache, no-store, must-revalidate. - DBGate сортирует результаты таблиц и представлений по умолчанию.
Для сортировки могут использоваться первичные ключи, колонки identity или полный набор выходных колонок. - Метаданные объектов включают описание обработчиков событий.
- Метаданные параметров могут включать свойство CONTEXT_TYPE со следующими значениями: Language, Top, Skip.
- Разработчики могут переопределить значение DEFAULT_VALUE в метаданных параметров используя обработчики DefaultValue.
- DBGate поддерживает разбивку результата по страницам и параметры $top и $skip в URL запроса.
Разбивка на страницы для таблиц и представлений выполняется автоматически.
Разработчики могут реализовать разбивку на страницы для хранимых процедур, используя следующие пары параметров:
top и skip, limit и offset, $top и $skip или $limit and $offset.
Используйте опцию MaxPageSize для настройки максимального размера страницы. - Клиент JavaScript поддерживает фиксацию колонок.
- Клиент JavaScript позволяет выполнять обработчики типа Actions и ContextMenu.
- Клиент JavaScript поддерживает JSON-параметры процедур редактирования.
- Клиент JavaScript поддерживает процедуры обновления единственным запросом (bulk update).
Улучшения:
- Платформа DBGate обновлена до .NET 6.0.
- DBGate поддерживает SaveToDB Framework 10.
- Клиент JavaScript значительно переработан, включая CSS.
- DBGate преобразует пустые значения не строковых типов в NULL.
- DBGate выводит в свойствах DATA_TYPE значения System.DbType вместо типов данных SQL конкретной платформы.
- DBGate не добавляет поля @ псевдокода SQL в выходные поля SELECT.
Например,id, state, @country_id
преобразуется вSELECT id, state FROM ... WHERE country_id = @country_id
. - Параметры хранимых процедур и SQL кода могут использовать символы в кодировке XML для получения значений из базовых колонок.
Например, параметр @company_x0020_name получает значение колонки "company name".
Исправленные ошибки:
- DBGate не читает объекты SQL Data Warehouse.
- DBGate возвращает пустой заголовок content-type для некоторых ответов text и HTML.