
Anton
09.06.2017
13:01:24
а не создавать пустые файлики)

Сергей
09.06.2017
13:01:34
показать?

Anton
09.06.2017
13:02:16
я знаю, что если создавать все модели через команд лайн, то он создаст и миграции

Google

Anton
09.06.2017
13:02:30
но потом ты поменяешь поле в модели, и кли тебе уже не поможет)

Сергей
09.06.2017
13:02:40
чувак

Anton
09.06.2017
13:02:52
а эта тулза делала дифф
реверс инжиниринг, вся ботва

Сергей
09.06.2017
13:04:47

Anton
09.06.2017
13:04:57
лол
чувак написал, что у него нет времени поддерживать проект
но штука суперская

Сергей
09.06.2017
13:05:42

Anton
09.06.2017
13:06:12
хз, нравится руками миграции писать, видимо)

Сергей
09.06.2017
13:06:25
я не пишу руками

Anton
09.06.2017
13:06:28
было бы у меня мозгов чуть побольше и времени - может и взялся бы)

Google

Сергей
09.06.2017
13:06:29
генерирую из кли

Anton
09.06.2017
13:07:17
чувак, ты создал модель, и потом она 100500 раз поменялась за время жизни проекта, и эти 100500 миграций ты будешь руками писать)

Сергей
09.06.2017
13:07:37
а ничего что так не делается?

Vsevolod
09.06.2017
13:07:57
Не делаю миграции и норм живу

Anton
09.06.2017
13:07:59
уже не говоря о том, что создавать модели в консоли - то еще развлечение)
кровавый ентерпрайз же

Сергей
09.06.2017
13:08:31
если я хочу поменять модель, первое что я делаю, это думаю, и планирую, затем генерирую миграцию, и уже потом обновляю модель
кстати
для справки

Vsevolod
09.06.2017
13:08:37
я думал кровавый и нода вещи не очень совместимые :)

Сергей
09.06.2017
13:08:48
миграции это не только изменение столбцов
а ещё МИГРАЦИЯ данных!
это ни одна утилита сделать не сможет

Anton
09.06.2017
13:09:13
я про то, что две операции вместо одной
и миграция ДАННЫХ - это сиды)

Сергей
09.06.2017
13:09:29

Anton
09.06.2017
13:09:36
принято разделять эти вещи обычно

Сева
09.06.2017
13:09:54
Эээ, чо

Anton
09.06.2017
13:10:02
меняешь структуру таблиц - делаешь миграцию, меняешь содержимое - делаешь сиды

Сергей
09.06.2017
13:10:23

Google

Сева
09.06.2017
13:10:29
У тебя была колонка name, ты решил разнести на first_name и last_name, а в продакшне уже тыща юзеров

Anton
09.06.2017
13:10:38
я очень много чего не знаю)

Глеб
09.06.2017
13:10:41
Ммм... Сиды - это тестовые данные, как бэ)

Сергей
09.06.2017
13:10:47

Сева
09.06.2017
13:10:50
И в миграции ты это пишешь как раз

Сергей
09.06.2017
13:10:51

Anton
09.06.2017
13:11:25
не конкат, наоборот в смысле)

Сева
09.06.2017
13:12:13
Ага, збс, а ты в продакшн будешь идти и руками делать запрос?

Anton
09.06.2017
13:12:38
в миграции же - данные остались те же, только структура поменялась

Сева
09.06.2017
13:13:13
Миграция - это DSL для описания подмножества условно-обратимых запросов к базе

Сева
09.06.2017
13:13:13
Условно - потому что часть данных будет теряться при откате. Но схема теряться не будет

Глеб
09.06.2017
13:14:08
Миграции вообще штука больная и опасная, и писать её стоит только ручками, утром и на свежую голову. Доверять такое дело утилитке - плохая идея.

Таймураз
09.06.2017
13:14:39
Имхо, по-хорошему миграции должны быть проверены 2+ людьми

Anton
09.06.2017
13:15:01
ну, смотря какие - если пример выше, то задача тривиальная
если комплексная, то конечно

Таймураз
09.06.2017
13:15:28
Практика показывает, что лучше и тривиальные вещи перепроверять
https://vc.ru/n/renova-fail

Сергей
09.06.2017
13:15:52

Google

Anton
09.06.2017
13:15:56
для этого есть дев серваки, чтоб излишне не параноить)
ну и тесты можно накидать а-ля "интеграционные", если дикие изменения

Сергей
09.06.2017
13:18:58
так все и делают
если не написал сам миграцию, то можешь проглядеть что там нагенерила программка

Anton
09.06.2017
13:19:49
проглядеть можешь даже если сам написал

Таймураз
09.06.2017
13:20:15

Сергей
09.06.2017
13:21:03

Anton
09.06.2017
13:21:11
мой посыл был в том, что ты изменил модель (изменения, которые не повлекут изменение данных в бд, добавил поле, изменил названия поля, добаввил индекс), и софтина может сгенерить миграци. лучше тебя в таком случае

Admin
ERROR: S client not available

Сергей
09.06.2017
13:21:50
только вот любая миграция — дело ответственное
и бездумное переименование/добавление полей это уже проблема
по мне написание миграции должно быть первым

Anton
09.06.2017
13:22:24
бизнес-требования меняются часто, тут бездумность не причем

Сергей
09.06.2017
13:23:11
бизнес-требования не обязывают тебя писать миграцию после изменения кода модели

Anton
09.06.2017
13:23:18
и я за подход code first, а если точнее, то вообще сначала абстракция, потом код, и потом ты уже думаешь, как это хранить

Сергей
09.06.2017
13:23:37
отсюда все проблемы и тормоза обычно

Anton
09.06.2017
13:23:51
наоборот)

Сергей
09.06.2017
13:24:13
надумают себе охуенных абстракций, а потом думают как эффективно это хранить в базе
и как оптимизировать выборки

Anton
09.06.2017
13:24:21
у нас чувак пару месяцев проектировал бд, потом требования координально поменялись)

Сергей
09.06.2017
13:24:40
проблема тех кто требует

Aleh
09.06.2017
13:25:01

Google

Aleh
09.06.2017
13:25:19

Сергей
09.06.2017
13:26:58

Таймураз
09.06.2017
13:27:03

Сергей
09.06.2017
13:27:30

Aleh
09.06.2017
13:27:44

Anton
09.06.2017
13:27:51
они всегда меняются

Aleh
09.06.2017
13:28:03

Таймураз
09.06.2017
13:28:06

Aleh
09.06.2017
13:28:21

Таймураз
09.06.2017
13:29:13
не, на всяких скриптовых этих вот языках
Ты же согласен, что один сложный запрос на SQL будет быстрее аналогичного решения на множестве примитивных SQL запросов и обработки данных на стороне приложения?

Anton
09.06.2017
13:29:41
ну это уже не та степь

Aleh
09.06.2017
13:29:47

Сергей
09.06.2017
13:30:23

Таймураз
09.06.2017
13:30:33
Так не только отправка запроса, работа с данными на стороне приложения практически в любом случае будет медленнее аналогии в SQL

Aleh
09.06.2017
13:30:47

Таймураз
09.06.2017
13:30:49
Говоря проще, исполнение, да

Aleh
09.06.2017
13:30:53
поэтому это время будет грубо говоря похожим
в любом случае больше всего будет потрачено времени на io
если остальное время одинаковое *

Anton
09.06.2017
13:31:44
ну, если массовое изменение большого объема данных, то может и нет)
но это довольно редкие случаи