Size: a a a

Saint P Ruby Community

2020 November 24

AN

Artem Napolskih in Saint P Ruby Community
oink попробуй, мы им подобную задачу решали, не смотри что старый, заведи.
источник

NG

Nikkie Grom in Saint P Ruby Community
Tab Loid
как я понял new relic это тоже исключительно SaaS.. Не подходит=/ Видимо только костылить
ты можешь сделать локальное окружение, приближенное к проду\прогнать на dev окружении тесты с подключенным new_relic, локализовать точку роста и изучить ее уже с помощью rack-mini-profiler

на проде один фиг править непродуктивно
источник

NG

Nikkie Grom in Saint P Ruby Community
Nikkie Grom
ты можешь сделать локальное окружение, приближенное к проду\прогнать на dev окружении тесты с подключенным new_relic, локализовать точку роста и изучить ее уже с помощью rack-mini-profiler

на проде один фиг править непродуктивно
наврядли существует один инструмент, который скажет тебе, что делать
источник

TL

Tab Loid in Saint P Ruby Community
Mikhail Sytchev
не знаю есть ли профайлинг памяти, но все остальные функции newrelic успешно замещает
в той версии которую сейчас мы юзаем нету=(
Правда есть такой пулл-реквест https://github.com/elastic/apm-agent-ruby/pull/487
но его не видно в ченджлоге. Сейчас очень надеюсь что достаточно будет просто обновить gem
источник

TL

Tab Loid in Saint P Ruby Community
Artem Napolskih
oink попробуй, мы им подобную задачу решали, не смотри что старый, заведи.
обязательно проверю, спасибо еще раз за инфу что он рабочий хоть и не обновляется
источник

AR

Anna Razumova in Saint P Ruby Community
Привет всем! У меня есть некоторое количество сущностей, которые создаются внутри ActiveRecord::Base.transaction. Создание одной из сущностей, например последней крешится по валидации, записей в базе нет, все окей. Вопрос - будет ли пропущен id "несозданной" сущности в бд?
например у нас есть юзер с ид 1, мы пытаемся создать еще одного, но у него там ошибка в поле иди что угодно. Что-то меняем, он создается, будет ли его id =3?
источник

RR

Ruslan Ryabov in Saint P Ruby Community
по плану да, в БД инкремент сработает, но записи с таким ИД в итоге не будет
источник

AR

Anna Razumova in Saint P Ruby Community
как нагуглить как оно работает? мой гугл фу чет не помог
источник

RR

Ruslan Ryabov in Saint P Ruby Community
так, а сделай обычный тестовый код, оберни в транзакцию, а в конце ее ролбкени, и посмотри инремент в БД
источник

AR

Anna Razumova in Saint P Ruby Community
уже сделала
источник

AR

Anna Razumova in Saint P Ruby Community
таки пропускает
источник

AR

Anna Razumova in Saint P Ruby Community
было интересно почему
источник

RR

Ruslan Ryabov in Saint P Ruby Community
так это уже гуглить именно работу транзакций в БД, о том, какие данные они откатывают, инкременты не входят в их число, по плану
источник

SK

Sergey Kojin in Saint P Ruby Community
и если делать create_or_find_by и запись есть, то тоже будет инкрементить индекс
источник

AR

Anna Razumova in Saint P Ruby Community
Sergey Kojin
и если делать create_or_find_by и запись есть, то тоже будет инкрементить индекс
воу, не знала
источник

m

max in Saint P Ruby Community
идея простая :
представим 2 транзакции создающие записи в одной и той же таблице
первая "берет" id = 1, вторая id = 2
но вторая коммититься, а первая откатывается
на что сбрасывать sequence?
на 1? но тогда для след транзакции nextval снова будет 2 - конфликт
источник

AR

Anna Razumova in Saint P Ruby Community
да, проще не откатывать
источник

AN

Artem Napolskih in Saint P Ruby Community
какая бд ? посгрес ?
https://postgrespro.ru/docs/postgrespro/10/sql-createsequence
читаем раздел "Замечания".
источник

IL

Igor Lukashin in Saint P Ruby Community
Ого, антиспам бот
источник

VA

Vsevolod Avramov in Saint P Ruby Community
И он даже работает :)
источник