• Какой максимальный объём для session.commit?

    zilevsky
    @zilevsky Автор вопроса
    I don't think there's a maximum amount of work that can be performed in a transaction. Data keeps getting added to the table files, and eventually the transaction either commits or rolls backs: AIUI this result gets stored in pg_clog; if it rolls back, the space will eventually be reclaimed by vacuum. So it's not as if the ongoing transaction work is held in memory and flushed at commit time, for instance.
    Ответ написан
    Комментировать
  • Как хранить PDF файлы в базе данных и получить на него ссылку?

    zilevsky
    @zilevsky Автор вопроса
    В итоге решением стало добавление в сервис построенный на fastapi метода который переводит файлы в байтовый вид, дополнительно снабжает запись uuid'ом и дальше через ендпоинт обращается к базе и вытаскивает на лету пдф по ссылке вида
    http://127.0.0.1:8009/api/v1/open_file?pdf_uuid=3d0fa9343402412081b2f014da94bfb9
    Ответ написан
    Комментировать
  • Как в fastapi вызвать функцию в роутере из модуля?

    zilevsky
    @zilevsky Автор вопроса
    Нашёл другое решение.
    Использовал декоратор @repeat_every
    Его функционала хватило чтобы обойти проблемы.
    Ответ написан
    Комментировать
  • Как применить include_name (alembic) для миграции отдельной таблицы?

    zilevsky
    @zilevsky Автор вопроса
    Решение
    In alembic/env.py or migrations/env.py:
    def include_object(object, name, type_, reflected, compare_to):
        if (type_ == "table" and object.schema == "exclude_from_migrations"):
            return False
        else:
           return True


    def run_migrations_online():
       ....
       context.configure(connection=connection,
                      target_metadata=target_metadata,
                      include_object = include_object,
                      process_revision_directives=process_revision_directives,
                      **current_app.extensions['migrate'].configure_args)
       ...


    В таблицах
    class MyClass(db.Model):
    __tablename__='my_class'
    __table_args__ = {"schema": "exclude_from_migrations"}
    Ответ написан
    Комментировать