Что нового
v0.1.5
17 сентября 2026
Holkas v0.1.5 — выпуск про точность переноса. Holkas теперь учитывает релиз Паруса на каждой из баз, а перенос проверен сценариями между двумя живыми базами Паруса на PostgreSQL и Oracle. Эти сценарии нашли и закрыли ряд ошибок, при которых объект переносился не полностью или приёмник отказывал.
Holkas учитывает релиз Паруса
Раньше Holkas обращался к любой базе так, будто она на одном и том же релизе Паруса. Отсюда две проблемы: у шагов действий молча терялись поля «Функция», «Параметр функции» и «Выполняемый метод», а на релизах начиная с 24.12.2025 не создавались методы и вызовы методов.
Теперь релиз читается из самой базы при подключении, и процедуры Паруса вызываются в том виде, в каком они есть на этом релизе.
Если релизы источника и приёмника расходятся:
- Источник новее приёмника. У приёмника может не быть полей, которые заполнены в источнике. Такая команда встаёт в план исключённой с предупреждением о полях, которые не переедут. Включите команду, если согласны перенести объект без них.
- Источник старше приёмника. Поля, которых источник не знает, берутся из приёмника, а план об этом пишет. Перенос со старой базы больше не стирает то, что на новой уже заполнено.
Релиз источника записывается в пакет и в git-репозиторий, поэтому при переносе из файла Holkas знает, какие поля в нём есть.
Выбор объектов из манифеста
После «Раскрыть против источника» отмечаются сразу все найденные объекты. Раньше снимать отметку приходилось по одной строке, и перенести только таблицы из манифеста на несколько тысяч объектов было практически невозможно.
- У каждого типа в левой колонке появилась галочка: она снимает или ставит отметку сразу на весь тип.
- Над списком есть кнопки «Снять выбор» и «Выбрать все» для текущего среза.
- Кнопка «Только «тип»» оставляет выбранным один тип. Например, «Только «Таблица (PG)»» — и в перенос уходят только таблицы.
Массовый выбор не берёт объекты с пометкой «в базе не найдено».
Исправленные ошибки
Права функций и процедур PostgreSQL. Функция или процедура, которой права явно не выдавались, по умолчанию доступна всем (EXECUTE у PUBLIC). Holkas считал, что прав у неё нет, и при переносе снимал это право в приёмнике, а повторный план расхождения не показывал. В схеме Паруса таких функций больше тысячи. Теперь права по умолчанию переносятся как есть.
Колонки таблиц PostgreSQL. Таблицы с колонками типов bool, bytea, date, int2, int8, timestamptz, float4, float8, oid и с массивами этих типов (например, int4[]) не создавались — применение отказывало. Такие колонки есть в таблицах самого Паруса.
Колонка со значением из последовательности. Колонка с умолчанием nextval(...) могла создаваться раньше своей последовательности, и применение падало. Теперь колонка ждёт последовательность, а если последовательности нет ни в наборе, ни в приёмнике, план об этом предупредит.
Таблица с внешним ключом на саму себя могла получить внешний ключ раньше собственного первичного ключа, и применение отказывало.
Ограничения класса. При изменении ограничения его наименование в приёмнике затиралось кодом ограничения, и повторный план не сходился. Теперь наименование переносится и меняется, как обычное поле.
Пустое меню приложения. Меню без содержимого не отличалось от отсутствующего: убранное в источнике, оно оставалось в приёмнике.
Пиктограмма, у которой изменилось только изображение, не попадала в план.
Смена вида сообщения отчитывалась об успехе, но вид в приёмнике не менялся, и то же расхождение появлялось в каждом следующем плане. Процедура Паруса вид сообщения не меняет, поэтому команда теперь честно отказывает и объясняет причину.
Лишние команды в плане. Изменение прав составного типа PostgreSQL давало пустую команду изменения самого типа. Добавление колонки в таблицу Oracle давало лишнюю команду изменения таблицы. Теперь в плане только то, что действительно меняется.
Обновление
Схема служебной базы Holkas в этом выпуске не меняется, новых обязательных параметров конфигурации нет.
Разовое расхождение по правам функций. Функции и процедуры PostgreSQL без явных прав, снятые в git-репозиторий или пакет прежней версией, записаны там без прав. Новая версия читает у них право EXECUTE для PUBLIC, поэтому первый перенос между базой и таким репозиторием покажет у этих объектов изменение прав. Это ожидаемо: после одного переноса план сойдётся. Если прежняя версия уже сняла это право у функции в приёмнике, следующий перенос этой функции его вернёт.
Перед обновлением рекомендуем остановить Holkas и сохранить резервную копию каталога данных. Windows-версию лучше распаковать в новый каталог приложения и подключить к существующему каталогу данных.
Дистрибутивы
К релизу приложены:
- Holkas Web для Windows x64;
- Holkas CLI для Windows x64;
- файл
SHA256SUMSдля проверки архивов.
Docker-образ опубликован как belousov2501/holkas:0.1.5 и belousov2501/holkas:latest.
Обратная связь
Сообщить об ошибке, задать вопрос или предложить улучшение можно через GitHub Issues.
Обращения и вложения видны всем. Не публикуйте пароли, токены, строки подключения и конфиденциальные данные из баз; перед отправкой журнала операции обязательно проверьте его содержимое.
Образ Docker: belousov2501/holkas:0.1.5