выбрасывает исключение.
Вызываться она будет из NodeJS, и я подумал, что exception в данном случае не лучшее решение, лучше наверное всегда возвращать таблицу, в которой будет либо успех либо сообщение об ошибке.
Подскажете, как лучше всего это разрулить?
про контроль версий – https://flywaydb.org/
Кстати к флайвею и иже. Мне как-то ни разу ещё статья/видяшка не попалась на тему как это дружить с ручными обработками данных в сложных ситуациях. Банальный случай взять - pk int4 на int8 поменять на огромной таблице. Ход действий понятен, но операции делаются зачастую вручную, чтоб остановиться если вдруг что, и т.д. И что записать в флайвейные таблицы/скрипты при этом? Положить в конце те, что отработали на проде, а в его таблички вручную указать "сделано"?
миграции с перезаливкой данных вообще как-то по жизни отдельно менеджатся. меняется схема в первой миграции, бампается версия приложения (в ней появляется какая-нибудь джоба, которая потихоньку переливает данные не в одной транзакции), ещё раз выкатывается новая версия без джобы уже и читающая новую схему, и потом ещё одна миграция с зачисткой старых данных. в моей практике это в операционный мануал выносится и максимум что делается - защёлка на стирающей данные миграции, проверяющая, что всё реально перелито или данных никогда не было (если это чистый/тестовый инсталл).
Ага, делим во времени на отдельные операции, которые уже можно поручить автоматике.. логично, спасибо.
Как то слишком сложно, у нас просто на каждом старте приложение выполняло синхрон, если нужно выключить или сделать полный пересинхрон то правиш конфиг и рестартуешь
а вы как пару десятков терабайт переписываете?
для бигдаты есть инструменты же
Обсуждают сегодня