Size: a a a

2020 August 11

AV

Alexander Vorobyev in PHP
Просто чтоб разбить?
источник

AM

Artem Molotov in PHP
Alexander Vorobyev
Мне не понятна логика разбиений.
А мне не понятна логика обсуждения. Я  уже сказал, что с точки зрения проблем нет разницы
источник

AM

Artem Molotov in PHP
Так почему мы тогда себя в какие-то рамки должны заганять, а?
источник

AM

Artem Molotov in PHP
Alexander Vorobyev
Просто чтоб разбить?
Просто что бы логически подзадача соответствовала подзадаче. Как коммит соответствовал тому, что он делает.
источник

SP

Sergey Protko in PHP
Alexander Vorobyev
Мне кажется в случае с БД. Более правильное решение в рамках одной транзакции выполнить все изменения, переводящие БД из одного рабочего состояние, в другое тоже рабочее состояние
тут есть два момента важных:

1. обратная совместимость - если у тебя 10 миграций и 8 применилось а 2 упали - ничего не должно сломаться в приложении и мы должны остановить деплой.
2. пример миграции которую нельзя заворачивать в транзакцию - CREATE INDEX CONCURRENTLY
источник

AV

Alexander Vorobyev in PHP
НИ таки "подзадача"...
источник

AV

Alexander Vorobyev in PHP
Ну да ладно фиг с ним...  По мне так логично разбивать по задачам и подзадачам. А не по "таблицам"..
источник

AV

Alexander Vorobyev in PHP
А то ведь так то и добавление каждой новой строки в код можно считать "подзадачей"......
источник

SP

Sergey Protko in PHP
Alexander Vorobyev
Ну да ладно фиг с ним...  По мне так логично разбивать по задачам и подзадачам. А не по "таблицам"..
да, по задачам / подзадачам. Дальше вопрос как кто на задачи/подзадачи дробит.
источник

SP

Sergey Protko in PHP
но в целом все так, не надо придумывать какие-то "другие" способы дробления коммитов кроме как "как ты хочешь деливерить изменения"
источник

AM

Artem Molotov in PHP
Alexander Vorobyev
Ну да ладно фиг с ним...  По мне так логично разбивать по задачам и подзадачам. А не по "таблицам"..
Деятельность в рамках коммита вполне себе подзадача. Если ты хочешь делать "всё в одной  миграции для задачи", то получиться, что у тебя для одного PR должна быть одна миграция, а значит ты уже не сможешь сделать так, что бы каждый коммит был логически верным
источник

AM

Artem Molotov in PHP
Artem Molotov
Деятельность в рамках коммита вполне себе подзадача. Если ты хочешь делать "всё в одной  миграции для задачи", то получиться, что у тебя для одного PR должна быть одна миграция, а значит ты уже не сможешь сделать так, что бы каждый коммит был логически верным
И если вдруг нужно будет отревертить коммит, то считай что у тебя кодовая база может сломаться.
источник

ВУ

Валентин Удальцов... in PHP
Кстати, вы всегда делаете миграции обратимыми?
источник

ВУ

Валентин Удальцов... in PHP
Ну я имею в виду, скурпулёзно пишете Version::down.
источник

А

Артём in PHP
Практически всегда
источник

AM

Artem Molotov in PHP
Валентин Удальцов
Кстати, вы всегда делаете миграции обратимыми?
Опрос устроить надо. Правда не факт, что все будут в курсе, что не всегда наличие кода в down свидетелствует о обратимости миграций
источник

JD

Jimm DiGriz in PHP
Валентин Удальцов
Кстати, вы всегда делаете миграции обратимыми?
да
источник

ВУ

Валентин Удальцов... in PHP
Я просто заметил, что мы пишем, но почти не пользуемся.
источник

SP

Sergey Protko in PHP
Обычно да, но есть нюансы:

1. мы вот делаем down (потому что есть dev сервера и пока все еще остается необходимость туда ветки деплоить)
2. но дальше dev они не юзаются ибо нет стратегии отката деплоя настолько что бы еще и базу откатывать. В целом у нас упор на BC в миграциях и forward compatibility в коде.
источник

SP

Sergey Protko in PHP
в целом если деплоишься часто есть в целом вариант вместо скриптов по версиям иметь пачку sql скриптов которые идемпотентны. Мол вместо CREATE TABLE пишешь IF EXISTS и прочее и прочее
источник