170 похожих чатов

Всем привет! Кто-то использовал tortoise orm в продакшене? Для нового

проекта ищу асинк orm, из выбора есть sqlalchemy 1.4, gino, tortoise orm и pewee-async
pewee-async сразу нет
gino работает, но там надо вручную many to many и остальным управлять
sqlalchemy 1.4 тоже работает, но когда я несколько месяцев назад пробовал добавлять столкнулся с некоторыми проблемами (это было на версии 1.4.9):
Были проблемы типа another operation is in progress, и нет возможности делать удобное await model.query.all(), т.е. какой-то доступ к сессии отовсюду (хотя возможно какое-то свое решение можно прикрутить)
ну и плюс там так или иначе это бета пока что
и ещё я не нашел удобного способа чтобы оно для m2m получало список айдишников, а не полные объекты (и обновление соответственно не очень удобное)

Посмотрел сегодня tortoise, там появились миграции на основе SQL, плюс autogenerate и все в принципе работает. Автогенерация pydantic схем для fastapi. Удобный доступ где угодно
Пока не известно, где подвох) Я его ранее не использовал, главный вопрос в стабильности

10 ответов

30 просмотров

Нельзя иметь доступ к сессии "отовсюду", это говнокод

Алексей- Автор вопроса

Я ранее писал, что если бы было только fastapi приложение, то через Depends сессия прекрасно передается, но могли быть например фоновые таски или места, куда её сложно передать, поэтому удобнее получить доступ через модель напрямую например (так делает например flask-sqlalchemy. Там тоже говнокод?) Алхимию именно из-за стабильности?

Алексей- Автор вопроса
Tishka17
Не удобнее

Если бы я увидел хоть один крупный проект на алхимии где все удобно передается и прекрасно работает без этого, я с удовольствием начну так делать) Есть такие в опенсорсе? Проекты на фласке, где почти все алхимию юзают, получаются отпадают, т.к. большинство юзают flask-sqlalchemy Про проблемы глобалов я прекрасно знаю

Алексей
Если бы я увидел хоть один крупный проект на алхим...

Не особо крупный, но но на алхимии + фастапи с нормально реализованным DI https://github.com/GLEF1X/fastapi-project

Алексей
Я ранее писал, что если бы было только fastapi при...

В SQLAlchemy сессии не глобальные. Там под капотом используется scopedsession, который кладется в thread локалы.

Алексей
Если бы я увидел хоть один крупный проект на алхим...

Сейчас решил заюзать алхимию как раз. Раньше юзал asyncpg, а там connection pool, через который можно параллельные запросы слать без всяких another operation in progress. Сейчас думаю над тем, как правильно создавать и прокидывать сессию 😂

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта