@proRuby

Страница 554 из 1594
Alex
21.05.2017
07:21:31
что там, хайп по эликсиру умер уже?

https://github.com/theSteveMitchell/after_party

Как вы мигрируете данные в проде?

я тут вот про этот гемчик вспомнил.

Google
Roman
21.05.2017
07:30:32
Alex
21.05.2017
07:30:43
можно забыть какие таски уже запускал а какие нет.

Roman
21.05.2017
07:31:05
приведи пример

Alex
21.05.2017
07:33:02
Пример - команда из пяти девелоперов, есть тимлид который выполняет роль девопса

Ему нужно срочно те фичи которые сдали смержить и задеплоить на прод

бегать и искать какие миграционные таски добавили или куда то их записывать - геморойно.

Igor
21.05.2017
07:39:51
Roman
21.05.2017
07:46:55
я имею в виду примеры миграционных тасок?

типа импорт дёрнуть или что?

или сами migrations

Alex
21.05.2017
07:50:38
Перекинуть top level поле в json филд или наоборот.

или тот же импорт да.

Люда (не зайка)
21.05.2017
08:54:22
?

Google
v
21.05.2017
08:54:50
?
серъезная заявка

Klim
21.05.2017
09:08:37
Даже не представляю, как в нашем чатике можно не быть зайкой.

Klim
21.05.2017
09:22:14
Error: can't modify frozen String

Alexander
21.05.2017
09:26:26
или тот же импорт да.
Унутре миграции же

desmond
21.05.2017
09:29:52
Унутре миграции же
миграции не для данных https://robots.thoughtbot.com/data-migrations-in-rails

Alex
21.05.2017
09:29:59
не нада так делать.

Alex
21.05.2017
10:01:38
schema_migrations таблица для этого
запускать миграции данных в миграции схем базы - моветон

простой кто оплачивать будет? )

Alexander
21.05.2017
10:02:23
Перекинуть top level поле в json филд или наоборот.
блядь (простите) это не изменение схемы?

Alex
21.05.2017
10:02:28
нет

это данные.

И их может быть ОЧЕНЬ много

если это сделать как часть миграции то сервис будет простаивать пока миграция накатывается.

Alexander
21.05.2017
10:04:11
если это сделать как часть миграции то сервис будет простаивать пока миграция накатывается.
есть варианты: делай два сервера с репликацией бд, делай вторую бд (клон из первой) на время миграции, ну и так далее

Alex
21.05.2017
10:04:22
о, городить реплику, да, это гораздо проще.

Alexander
21.05.2017
10:04:34
как та же капистрано делает: папочку создала, всё подготовила — резко заменила

Google
Alex
21.05.2017
10:04:35
это у тебя мастер-мастер получается?

Alexander
21.05.2017
10:05:00
то же самое с БД можно провернуть: вторую бд создал, всё настроил, и поменял. но там посложнее с данными будет, да

это у тебя мастер-мастер получается?
не знаю, надо пробовать. может и м-с получится

Alex
21.05.2017
10:05:34
лол, надо пробовать.

Alexander
21.05.2017
10:05:35
слейв подождёт же простоя мастера?

Alex
21.05.2017
10:05:41
Я тоже могу наобум что то сказать.

Alexander
21.05.2017
10:06:03
Alex
21.05.2017
10:06:10
а лучше бы пробовал)
так я и говорю то что пробовал

и нашел инструмент который позволяет это делать проще.

Alexander
21.05.2017
10:08:22
и нашел инструмент который позволяет это делать проще.
да. ты сначала спрашивал, что это типа не изменение схемы (хотя тут я не соглашусь вообще никак) а потом, что типа простой это две разные проблемы я тебе сейчас про вторую по ней инструментов ты вроде не постил и свои попытки

Alex
21.05.2017
10:08:54
хорошо, давай по другому

приведи пример миграции данных.

Alexander
21.05.2017
10:10:38
приведи пример миграции данных.
я вообще такое впервые слышу. в контексте приложения это странно. хотя… ну вот есть у тебя куча записей с пустыми строками, например. а ты хочешь nil сделать. код меняешь, чтобы пустую строку не отдавал, и в базе подчищаешь, не меняя её структуру — вот тут "миграция для данных" ("миграция данных" звучит как их переезд)

Alex
21.05.2017
10:11:07
https://robots.thoughtbot.com/data-migrations-in-rails

Вот тут глупые ребята обитают наверное.

Alexander
21.05.2017
10:11:21
а когда ты, например, удаляешь повторяющиеся email в разных регистрах, и добавляешь индекс уникальности с игнором регистра — ты меняешь схему anyway, попутно затрагивая данные

Alex
21.05.2017
10:11:26
миграция базы данных - миграция схемы

миграция данных - миграция данных.

я не дропаю столбец в моем случае.

Google
Alexander
21.05.2017
10:11:56
схема остаётся?

Alex
21.05.2017
10:11:59
да ...

я перетаскиваю данные

Alexander
21.05.2017
10:12:10
а то "перенос поля" звучит как дроп столбца

Alex
21.05.2017
10:12:11
потом следующим релизом я просто дропаю пустой столбец.

Admin
ERROR: S client not available

Alex
21.05.2017
10:12:28
а до тех пор приложение умеет работать и с тем и с другим

Alex
21.05.2017
10:12:48
хм-хм, дробишь
ну это нормальный способ делать миграции данных и схемы с минимум простоя.

Потому что простой может быть например час, пока все данные смигрируются.

ну и нафига?
потому что приложение в данный момент работает

я мигрирую данные на живую, не останавливая приложение.

Alexander
21.05.2017
10:14:11
так, смотри. мне интересно становится. ты переносишь данные, не меняя схему. например, час. оставляешь столбец. он до следующего релиза чем-то заполняется? очевидно, да, если "и с тем и с другим"

Alex
21.05.2017
10:14:41
нет, он до следующего релиза ничем не наполняется

потому что у меня приложение записывает данные уже в новое место, а читает из двух

в зависимости от того где эти данные есть.

Таким образом я без простоя мигрирую данные.

Alexander
21.05.2017
10:15:17
Alex
21.05.2017
10:15:22
бля

Google
Alex
21.05.2017
10:15:34
Кто тебе сказал что я все перенес?

оно переноситься может час, два, сутки и т.д

приложение при этом должно продолжать работу.

Klim
21.05.2017
10:15:51
ну пока не перенес, читает. как я понимаю.

Alexander
21.05.2017
10:15:55
всё, понял. ок

Alex
21.05.2017
10:16:09
Это обычная практика мигрировать в два шага для минимум простоя.

Alexander
21.05.2017
10:16:24
дальше: после выполнения задачи переноса — там наверняка во время переноса будут добавляться новые данные, которые уже не попадут в выборку, не?

или ты делаешь кучу запросов, условно while exists?

Alex
21.05.2017
10:17:04
почему тебе дважды приходится повторять? ))

потому что у меня приложение записывает данные уже в новое место, а читает из двух

Klim
21.05.2017
10:17:37
так новые данные в новом столбце. даже я уже понял :)

Alexander
21.05.2017
10:17:46
почему тебе дважды приходится повторять? ))
потому что выходной, плохо соображаю, и вообще не углублялся в этот подход) сорян

Alex
21.05.2017
10:18:20
это обычный подход в два шага, если простой - непозволительная роскошь, а данные долго мигрируются.

Alexander
21.05.2017
10:18:31
просто пытаюсь оценить затраты, риски и прочее

Alex
21.05.2017
10:19:07
рисков нет если у тебя есть покрытие тестами.

Страница 554 из 1594