@symfony_php

Страница 547 из 1418
Dinar
02.01.2018
16:28:41
ммм а это точно миграции? может у тебя под видом мигграций какой-нибудь импорт данных приложения идет?
Например я хочу перекинуть каких-то юзеров в другую группу. Или роли присвоить им.

Shmaltorhbooks
02.01.2018
16:28:44
у него не две разные базы в рамках одной аппликухи

Dinar
02.01.2018
16:28:46
Утрировано.

Google
Sergey
02.01.2018
16:29:05
делай просто CLI команды

миграции должны удовлетворять простому требованию

ты можешь откатиться на любую ревизию гита и накатить миграции и они должны накотиться

Dinar
02.01.2018
16:29:40
А зачем для одноразового изменения команда?

Sergey
02.01.2018
16:29:53
А зачем для одноразового изменения команда?
потому что миграции не для одноразового изменения)

Shmaltorhbooks
02.01.2018
16:29:55
каких к черту заказкичов?
у него по этому принципу делается различие в том, что и где выполнять

Dinar
02.01.2018
16:29:56
Так ты можешь. В даун переносишь обратно.

Dinar
02.01.2018
16:30:20
Обоснуй. :)

Shmaltorhbooks
02.01.2018
16:30:21
Так ты можешь. В даун переносишь обратно.
чаще всего после обновления данных восстановить исходные невозможно

update field set value = 100;

и потом у тебя опа, в поле 100

это ты прописал или аппликуха после деплоя написала?

Google
Dinar
02.01.2018
16:30:59
Вот конкретная задача. Всем клиентам с пакетом премиум, дать роль Вахтёр.

Sergey
02.01.2018
16:30:59
миграции - это только поддержание схемы базы в актульном состоянии. Все. Точка. Если тебе надо данные чето там как-то сделать - это не миграции

Shmaltorhbooks
02.01.2018
16:31:01
любая конкатенация - теряешь оригиналы

Dinar
02.01.2018
16:31:31
Это не проревьюить.

Sergey
02.01.2018
16:32:05
Это не проревьюить.
папочку с sql-ками сделай если хочешь

Dinar
02.01.2018
16:32:06
А в даун у всех с премиумом роль вахтер убрать.

Sergey
02.01.2018
16:32:08
но это НЕ миграции

Shmaltorhbooks
02.01.2018
16:32:09
Это не проревьюить.
sql в файлик и прекрасно ревьюится

Dinar
02.01.2018
16:32:22
Вот мне кажется это как раз усложнение.

Или я не прав?

Shmaltorhbooks
02.01.2018
16:32:55
зависит от того, насколько строго у тебя в проекте к этому относятся

Sergey
02.01.2018
16:32:56
Или я не прав?
если это усложнение - то почему у тебя тогда проблемы сделать так как "тебе кажется проще"?

Dinar
02.01.2018
16:33:17
Нет проблемы. Я спросил есть ли готовое решение. ;)

Shmaltorhbooks
02.01.2018
16:33:43
если делать в виде миграций - skipIf

Sergey
02.01.2018
16:33:45
а мы уточнили зачем и получили ответ что тебе не для миграций это надо (schema migrations они называются) а для того что бы одноразовые штуки делать

Shmaltorhbooks
02.01.2018
16:33:58
а там или имя хоста проверяй, или значение переменной из env - не суть

Dinar
02.01.2018
16:34:14
если делать в виде миграций - skipIf
Надо наоборот правило не скип иф. :)

Иначе с ростом числа клиентов будет все хуже.

Shmaltorhbooks
02.01.2018
16:34:39
->skipIf(gethostname() != 'foo')

Google
Shmaltorhbooks
02.01.2018
16:34:41
не суть

Dinar
02.01.2018
16:34:51
А ну да. :))

Sergey
02.01.2018
16:34:54
Иначе с ростом числа клиентов будет все хуже.
когда у тебя по базе на клиента ты уже как бы роешь себе ямку

Shmaltorhbooks
02.01.2018
16:35:02
какая разница что будет в skipIf - равно или не-равно?)

Sergey
02.01.2018
16:35:28
что значит "например"?)

p.s. у меня есть опыт работы с вайтлейблами по такой схеме если тебе интересно)

Dinar
02.01.2018
16:35:57
когда у тебя по базе на клиента ты уже как бы роешь себе ямку
Схемы и приложения не будут отличаться вообще. Только данные само собой.

Dinar
02.01.2018
16:36:33
так зачем разные инстансы?
Чтобы не париться с разграничением данных.

Shmaltorhbooks
02.01.2018
16:36:37
конфигами разрулил различия и привет

Shmaltorhbooks
02.01.2018
16:36:47
Чтобы не париться с разграничением данных.
ты уже начал париться с разграничением данных))

Sergey
02.01.2018
16:36:55
Чтобы не париться с разграничением данных.
как сладко когда 1 деплой превращается в 20

или 100

Shmaltorhbooks
02.01.2018
16:37:03
ты пришел с вопросом "как разграничить модификацию данных"

что есть ни что иное, как разграничение

Dinar
02.01.2018
16:37:33
ты уже начал париться с разграничением данных))
Только однажды. Миграции обычно - достаточно простые и самостоятельные.

Shmaltorhbooks
02.01.2018
16:38:03
дело не в миграциях, а в том, что выбрав между разными инстансами и разграничением данных ты получил и инстансы и разграничение))

сейчас тебе надо только данные модифицировать

Google
Shmaltorhbooks
02.01.2018
16:38:25
потом тебе надо будет заголовки специальные слать

потом иерархию ролей другую

потом еще что-то

Dinar
02.01.2018
16:39:08
Этторе составляет проблемы репу форкнуть в таком случае.

Shmaltorhbooks
02.01.2018
16:39:11
у тебя будет столько вариантов приложения, сколько клиентов)

репу форкнуть - дело не хитрое

Dinar
02.01.2018
16:39:29
Просто никакой опасности случайно показать данные одного клиента другому.

Shmaltorhbooks
02.01.2018
16:39:42
а вот суппортить несколько проектов, которые отличаются в каких-то мелочах - это ад

а про мелочи эти помнит только один человек

Dinar
02.01.2018
16:39:52
Если например данные финансовые какие нибудь.

Admin
ERROR: S client not available

Shmaltorhbooks
02.01.2018
16:39:54
а его вчера сбил автобус

и привет

Dinar
02.01.2018
16:40:14
Ну я уж просто приукрасил.

Считай это как одно одинаковое для всех приложение.

Shmaltorhbooks
02.01.2018
16:40:30
так а я нет :)

Dinar
02.01.2018
16:40:49
Все что будет отличаться, будет только в конфигах. Либо в данных.

Соответственно заголовки или че - можно туда же засунуть.

Shmaltorhbooks
02.01.2018
16:41:07
это сейчас)

Dinar
02.01.2018
16:41:42
Ну ты можешь какой-то реально проблемный случай предсказать?

Google
Sergey
02.01.2018
16:42:16
Ну ты можешь какой-то реально проблемный случай предсказать?
у меня была только боль управления инфраструктурой.... но в целом это не так страшно как другие "типичные решения" которые люди с вайтлейблами выдумывают

Dinar
02.01.2018
16:42:39
Ну как-то ее все равно надо решать же. :)

Есть ли более элегантное решение тогда?

Shmaltorhbooks
02.01.2018
16:43:06
решение чего именно?)

Sergey
02.01.2018
16:43:10
Ну как-то ее все равно надо решать же. :)
ну у нас все было автоматизировано. а так решение одно - по больше всего держать для всех в единственном экземпляре

Shmaltorhbooks
02.01.2018
16:43:14
миграций, обновления данных или интансов?)

Sergey
02.01.2018
16:43:23
ему не миграции нужно делать

Sergey
02.01.2018
16:43:42
ему таски приходят в духе "эй, там надо для вайтлейблов А и Б залить данные, на другой друггие"

но с бэкапами)))
а что с ними?)

Sergey
02.01.2018
16:44:11
Dinar
02.01.2018
16:44:18
Где-то забудешь, и все увидят то, что не надо. :)

Shmaltorhbooks
02.01.2018
16:44:18
а что с ними?)
к ним "в единственном экземляре" часто неприменимо)

Sergey
02.01.2018
16:44:23
но тебе где-то этот if надо держать

в голове, на уровне запуска команды, на уровне конфигов

к ним "в единственном экземляре" часто неприменимо)
ммм.... почему? пул бэкапов это "один экземпляр"

Shmaltorhbooks
02.01.2018
16:45:03
Где-то забудешь, и все увидят то, что не надо. :)
так и при конфигурировании тоже можно забыть разделить и все всё увидят)

Dinar
02.01.2018
16:45:06
но тебе где-то этот if надо держать
Но если это разные инстансы и сервера - по определению такого не будет.

На этой машине тех данных нет.

Они на другой

Sergey
02.01.2018
16:46:00
Но если это разные инстансы и сервера - по определению такого не будет.
смотри. Вот на нашем проекте типа все в одной базе, и тут вжух приходит клиент из какой бразилии и там по законодательству данные пользователей должны хоститься на територии страны.

Страница 547 из 1418