Легковесный мигратор 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 соответственно, что поощряет вклад сообщества для дальнейшего расширения функционала.


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

5468Почему Южная Корея отказывается от биомассы, но не торопится ее хоронить? 5467Может ли слияние культур в мире моды стать глотком свежего воздуха или хаотичным миксом? 5466Ист-Палестайн: борьба за справедливость после катастрофы на рельсах 5465Могут ли деликатесы стать смертельным угощением? Скандал в Boar's Head 5464Смерть генерального директора UHC и гнев на страховые компании: разбор общественного... 5463Заменят ли цифровые ключи пароли окончательно? 5462Неужели рождественские ели становятся лакомством для слонов? 5461Почему наш организм страдает из-за перевода часов, и есть ли этому конец? 5460Юношеская одержимость: как антивозрастная косметика калечит подростков 5459Как остаться трезвым в праздники и не потерять радость жизни? 5457Почему цитрусовые плантации Флориды оказались на грани исчезновения? 5456Действительно ли деменция неизбежна после 55? 5455"Соблазнение текстурой": Emporio Armani представляет осенне-зимнюю коллекцию... 5454Мозг на связи: революция нейроинтерфейсов на пороге 5453Почему японская кухня — это не только суши и мисо?