Size: a a a

Чат подкаста «Разбор Полётов»

2021 June 29

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
есть корзина, в ней продукты
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
я добавляю в продукт новое поле
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
в случае jsonb мне нужно апдейить все корзины
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
в случае relative отношений мне вообще ничего ен нужно делать
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Не, ровно наоборот. Тебе для jsonb ничего не нужно делать, а для реляционки - делать миграцию из трех шагов.
источник

D

Dima in Чат подкаста «Разбор Полётов»
почему?
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
миграция из 3 шагов есть там и там. потому что продукты есть и там и там
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
потом что если корзина это просто связь user_id , product_id то что тут трогать?
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Зачем три шага миграции для json?
Я просто в десериализаторе укажу default value - и все.
В любом случае мне не нужно будет "добавлять колонку", "менять тип колонки на not null"
источник

D

Dima in Чат подкаста «Разбор Полётов»
если что, в постгри очень много крутых функций в поставке, облегчают жизнь
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
потому что корзина и продукт это разные таблицы и изменение то происходит в таблице с продуктом и в случае jsonb мне придется это еще и табличку с корзиной тащить
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Ну, на самом деле ты ровно один раз пишешь код миграции вида:
по всем id, пачками по 1000 штук, прочитать пачку старой версии, обновить поля, записать пачку, сохранить смещение.

И больше вообще не думаешь о миграции в БД..
источник

D

Dima in Чат подкаста «Разбор Полётов»
>пачками по 1000 штук

ага, это как раз вот то самое средство, чтобы не падать на больших базках?
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Вот тут уже не понял.
У тебя таблица с продуктами, таблица с корзиной.
Нужно добавить поле в продукт.
Я не понимаю, зачем идти в корзину для сценария с jsonb
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Ага. И без него все равно жить нельзя )
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Ну как "больших", уже от 100K записей лучше так делать.
источник

D

Dima in Чат подкаста «Разбор Полётов»
а курсор двигать как? анонимный блок используешь?
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
чтобы мне потом при работе с корзиной не лазить в продукт больше.
источник

PD

Phil Delgyado in Чат подкаста «Разбор Полётов»
Никаких курсоров, просто id>N limit 1000
источник

AR

Andrei Rebrov in Чат подкаста «Разбор Полётов»
тут самый большой вопрос- что вы храните в jsonb и зачем
источник