Anonymous
Кстати, кто-нибудь знает, почему в Telegram не работает Compose Key? Меня эта херня ещё в скайпе вымораживала, но вот в новой версии уже работает, а здесь, как оказывается, нет.
arts
Safort
Vsevolod
Антон
https://github.com/origin1tech/sequelize-cmd как же обидно, что проект загнулся :с
Антон
генератор миграций был норм, вроде...
Sergey
лол
Sergey
это есть в npmjs.com/sequelize-cli
Антон
неа
Sergey
migration:create
Sergey
model:create
Антон
этот умел на основании моделей и бд генерить миграции
Антон
а не создавать пустые файлики)
Sergey
Sergey
показать?
Антон
я знаю, что если создавать все модели через команд лайн, то он создаст и миграции
Антон
но потом ты поменяешь поле в модели, и кли тебе уже не поможет)
Sergey
чувак
Sergey
Антон
а эта тулза делала дифф
Антон
реверс инжиниринг, вся ботва
Антон
лол
Антон
чувак написал, что у него нет времени поддерживать проект
Антон
но штука суперская
Sergey
Антон
хз, нравится руками миграции писать, видимо)
Sergey
я не пишу руками
Антон
было бы у меня мозгов чуть побольше и времени - может и взялся бы)
Sergey
генерирую из кли
Антон
чувак, ты создал модель, и потом она 100500 раз поменялась за время жизни проекта, и эти 100500 миграций ты будешь руками писать)
Sergey
а ничего что так не делается?
V
Не делаю миграции и норм живу
Антон
уже не говоря о том, что создавать модели в консоли - то еще развлечение)
Антон
кровавый ентерпрайз же
Sergey
если я хочу поменять модель, первое что я делаю, это думаю, и планирую, затем генерирую миграцию, и уже потом обновляю модель
Sergey
кстати
Sergey
для справки
V
я думал кровавый и нода вещи не очень совместимые :)
Sergey
миграции это не только изменение столбцов
Sergey
а ещё МИГРАЦИЯ данных!
Sergey
это ни одна утилита сделать не сможет
Антон
я про то, что две операции вместо одной
Антон
и миграция ДАННЫХ - это сиды)
Sergey
Антон
принято разделять эти вещи обычно
Vsevolod
Эээ, чо
Антон
меняешь структуру таблиц - делаешь миграцию, меняешь содержимое - делаешь сиды
Sergey
Vsevolod
У тебя была колонка name, ты решил разнести на first_name и last_name, а в продакшне уже тыща юзеров
Антон
я очень много чего не знаю)
Anonymous
Ммм... Сиды - это тестовые данные, как бэ)
Sergey
Vsevolod
И в миграции ты это пишешь как раз
Sergey
Антон
Антон
не конкат, наоборот в смысле)
Vsevolod
Ага, збс, а ты в продакшн будешь идти и руками делать запрос?
Антон
в миграции же - данные остались те же, только структура поменялась
Vsevolod
Миграция - это DSL для описания подмножества условно-обратимых запросов к базе
Vsevolod
Условно - потому что часть данных будет теряться при откате. Но схема теряться не будет
Anonymous
Миграции вообще штука больная и опасная, и писать её стоит только ручками, утром и на свежую голову. Доверять такое дело утилитке - плохая идея.
Таймураз
Имхо, по-хорошему миграции должны быть проверены 2+ людьми
Антон
ну, смотря какие - если пример выше, то задача тривиальная
Антон
если комплексная, то конечно
Таймураз
Практика показывает, что лучше и тривиальные вещи перепроверять
Таймураз
https://vc.ru/n/renova-fail
Sergey
Антон
для этого есть дев серваки, чтоб излишне не параноить)
Антон
ну и тесты можно накидать а-ля "интеграционные", если дикие изменения
Sergey
так все и делают
Sergey
если не написал сам миграцию, то можешь проглядеть что там нагенерила программка
Антон
проглядеть можешь даже если сам написал
Sergey
Антон
мой посыл был в том, что ты изменил модель (изменения, которые не повлекут изменение данных в бд, добавил поле, изменил названия поля, добаввил индекс), и софтина может сгенерить миграци. лучше тебя в таком случае