Ssylka

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


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

18849Лучшие небесные объекты для зимних наблюдений в бинокль в сезоне 2025–2026 годов 18848Революция в палеогенетике и чтение днк из древних пещерных отложений 18847Анализ крови вместо скальпеля: потенциал и риски мультираковой ранней диагностики 18846Почему непроходимость уретры придала мочевому пузырю пациента из Нигерии форму... 18845Комиссия по ценным бумагам США пресекла мошенническую схему с криптовалютами и... 18844Италия оштрафовала Apple за злоупотребление доминирующим положением через систему... 18843Как новый беспроводной имплант проецирует «фильмы» прямо в мозг, минуя органы чувств? 18842Стотысячный снимок Марса и новые открытия орбитального разведчика NASA 18841Почему кошки встречают мужчин гораздо громче и активнее, чем женщин? 18840Является ли Passwd ультимативным инструментом безопасности для организаций, работающих... 18839Археологические находки свидетельствуют о мирном сосуществовании зороастризма с... 18838Спецслужбы США и Эстонии нейтрализовали платформу web3adspanels для хищения банковских... 18837Способен ли новый материал M-rGO вытеснить традиционные аккумуляторы благодаря рекордной... 18836Почему более 100 000 серверов n8n оказались под угрозой полного захвата из-за критической... 18835Находка «ребенка из таунга»: открытие, навсегда изменившее представление об эволюции...