Легковесный мигратор PostgreSQL на TypeScript

Разработчики, использующие Node.js, часто сталкиваются с необходимостью мигрировать базы данных PostgreSQL. Традиционный подход с использованием Java-утилиты Flyway может приводить к увеличению размера Docker-образов из-за включения JVM. Альтернативные Node.js миграторы не всегда соответствуют требованиям, особенно при использовании специфических функций Flyway, таких как повторяемые миграции и хуки-коллбэки.
Легковесный мигратор PostgreSQL на TypeScript
Изображение носит иллюстративный характер

Для решения этой проблемы создан легковесный клон Flyway для PostgreSQL, написанный на TypeScript. Инструмент поддерживает стандартные миграции, повторяемые миграции и хуки-коллбэки (частично). Также реализовано ведение истории миграций, что позволяет отслеживать изменения. Реализованы команды create, migrate, info и dry run в стиле оригинального Flyway, но не реализованы baseline, undo, script миграции и обработка транзакций.

Пример использования включает создание, применение и просмотр миграций. Для начала работы достаточно запустить PostgreSQL в Docker, создать миграцию с помощью npx pg-flyway create, заполнить ее SQL-кодом, применить с помощью npx pg-flyway migrate и просмотреть историю с помощью npx pg-flyway info.

Разработчики могут использовать данный инструмент для упрощения процесса миграции PostgreSQL в Node.js-проектах, избегая зависимости от JVM. Исходный код и утилита доступны в репозитории GitHub и NPM соответственно, что поощряет вклад сообщества для дальнейшего расширения функционала.


Новое на сайте

19743Artemis: момент, который определит целое поколение 19742Почему в горах реже болеют диабетом? 19741Что скрывается подо льдами Антарктиды и почему страны могут начать за это бороться? 19740ДНК моркови и красного коралла на туринской плащанице 19739Что нового нашёл телескоп NASA в остатках сверхновой, которую китайские астрономы... 19738Куда исчезла минойская цивилизация 1973736 вредоносных npm-пакетов под видом плагинов Strapi: охота на криптовалютную платформу 19736Fortinet экстренно латает критическую дыру в FortiClient EMS, которую уже вовсю... 19735Что за существо, похожее на червя из «дюны», обнаружили в Китае задолго до кембрийского... 19734Может ли старый препарат для трансплантации отсрочить диабет 1 типа? 19733Викторина для любителей осьминогов: что вы знаете о головоногих? 19732Почти сто пусков за плечами, но Artemis II оказался чем-то совершенно другим 19731Как китайский смог оказался связан с арктическими штормами, а мыши избавились от диабета? 19730Почему аллергия передаётся по наследству не так просто, как кажется? 19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах...
Ссылка