Size: a a a

2021 July 22

V

Vladi in Python Flask
источник

В

Владимир in Python Flask
ну в сети много что написано)
источник

А

Артём in Python Flask
Лучше вообще отдельного пользователя создать с ограниченными правами и под ним запускать.
источник

T

Timofey in Python Flask
Подскажите, плиз, эти два куска кода в алхимии делают одно и то же?
db.session.execute(model.__table__.update().where(model.__table__.c.id.in_(ids)).values(value=value))
db.sesstion.flush()

db.session.query(model).filter(model.id.in_(ids)).update({'value': value}, synchronize_session="fetch")

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

Р

Роман in Python Flask
Что значит для первого объекта?
источник

T

Timofey in Python Flask
Если сделать что-то типа db.session.query(model).filter(model.id.in_(ids)).all(), то в списке новое значение будет только у первого объекта. Не знаю, важное ли уточнение: транзакция коммитится после всех этих действий.
источник

T

Timofey in Python Flask
Т.е. в двух случаях отрабатывает нормально, и проблема с первой записью возникат только в открытой сессии.
источник

T

Tishka17 in Python Flask
Какой первой записью, что происходит
источник

T

Tishka17 in Python Flask
Сессия кэширует объекты, если что
источник

T

Timofey in Python Flask
Я в первом сообщении написал, что при джойне, но если и просто запрос такой сделать, в списке только у первого значения обновляет.
источник

T

Timofey in Python Flask
Вопрос, почему если записать апдейт как во втором варианте, то все объекты при запросе возвращаются с обновленными, а если как в первом, то только один? Есть ли разница в том, как эти записи отрабатывают?
источник

АП

Агент Печенька... in Python Flask
Включи эхо да посмотри.
источник

T

Tishka17 in Python Flask
Я не вижу в первом syncronize
источник

Р

Роман in Python Flask
Как будто маловато информации, но выглядит так ,будто сессия у тебя не вытаскивает данные из базы, execute просто выполнит запрос без синхронизации с бд.
источник

Р

Роман in Python Flask
А update через query синхронизирует сущности, находящиеся в сессии с состоянием базы данных.
источник

Р

Роман in Python Flask
Ну это насколько я понимаю работы алхимии
источник

T

Timofey in Python Flask
Я ожидаю, что если сделать flush(), то сессия должна подтягивать обновления. Нет?
источник

T

Tishka17 in Python Flask
Если сделать флаш, то сбросятся в бд все недоделанные вещи
источник

T

Tishka17 in Python Flask
И подтянутся те вещи, которые запланированы на обновление при тех операциях
источник

Р

Роман in Python Flask
да вроде нигде не сказано, что флаш вытягивает данные, хотя может через жопу прочитал
источник