#sqlalchemy

2026-02-02

New blog post is up! How I added search functionality to Rack Root, a FastAPI app.

I cover just about all the Python code I wish I had examples for when I was figuring this out. I go over the database class design, indexes/vectors a little bit, and the API design I ended up implementing.

#blogging #writing #development #search #rackroot #python #backend #fastapi #homelab #learning #databases #sqlalchemy

medium.com/@a.j.longchamps/how

2026-02-01

Cложные запросы через паттерн Repository. Large Repository

После негодования по поводу реализации паттерна Repository в обучающих материалах, а именно скудность функционала, я решил, что нужно расширяться и это привело к тому, что появился ORM Query Builder, о котором подробно расскажет вам эта статья.

habr.com/ru/articles/991494/

#sqlalchemy #repository #patterns #python #api

2026-01-25

Компромиссы

До того как я начал кодить, я думал, что у разработчиков на любую задачу есть какое-то одно решение — бест-практика. Достаточно почитать SO или, вот теперь, пообщаться с нейронкой и — вуаля — задача сделана. Но, начав погружаться в литературу по дизайну систем, я стал чаще встречать тему про компромиссы. У задач нет единственных способов решения. Сейчас я рад, что на практике стали попадаться ситуации, где нет одного решения, но есть цели и ограничения.

habr.com/ru/articles/988846/

#sql #sqlalchemy #проектирование #компромисс

2026-01-23

#sqlalchemy why is this tutorial headed by so many notes? docs.sqlalchemy.org/en/20/tuto

2026-01-23

Модуль Python для обновления данных в БД — DBMerge

Хочу рассказать о своей разработке и поделиться ей с сообществом habr в виде готового модуля для Python. Этот модуль решает задачу обновления данных в базе данных. Он выполняет insert/update/delete в одном действии. Модуль DBMerge проектировался для упрощения ETL процессов по загрузке данных из множества внешних источников в SQL базу. Для взаимодействия с базой данных используется SQLAlchemy и ее универсальные механизмы, таким образом, разработка не имеет привязки к конкретной БД. (На момент написания статьи, детальные тесты проводились для PostgreSQL, MariaDB, SQLite, MS SQL) Принцип действия Принцип действия следующий: модуль создает временную таблицу в базе и записывает в нее весь входящий датасет через операцию массового insert. Далее он выполняет инструкции UPDATE, INSERT, DELETE для целевой таблицы.

habr.com/ru/articles/985306/

#sql #sqlalchemy #python #etl #postgresql #pandas

2026-01-06

FastAPI: 5 практичных архитектурных решений, о которых я пожалел, что не узнал раньше

Привет, Хабр! Когда начинаешь новый проект на FastAPI, всё кажется простым: пара моделей Pydantic, несколько эндпоинтов — и готово. Но через полгода и 20 000 строк кода оказывается, что базовая валидация размазана по всему приложению, бизнес-логика перемешана с обращениями к БД, а тесты пишутся со скрипом. Сегодня я хочу поделиться конкретными архитектурными паттернами и приёмами , которые я неоднократно использовал в своих проектах. Они не усложняют простые задачи, но делают жизнь в долгосрочной перспективе несоизмеримо легче.

habr.com/ru/articles/983254/

#backend #python #FastAPI #sqlalchemy #Redis

2025-12-22

Хроники тестирования Data Quality

В современных data-процессах ключевую роль играет обеспечение качества данных. Рассмотрим четыре популярных подхода: DBT, SQL, Python (Pandas/SQLAlchemy) и Great Expectations, оценив их эффективность для различных сценариев проверки данных. Эта статья будет интересна и полезна Data-инженерам, аналитикам данных и специалистам Data Quality для выбора оптимального метода валидации данных в зависимости от стека технологий и сложности бизнес-логики. Материал ориентирован на начинающий уровень подготовки: тем, кто еще не сталкивался системно с инструментами управления качеством данных. Привет, Хабр! Меня зовут Мария, я Data-инженер в SimbirSoft, и предлагаю для начала немного познакомиться с каждым из вышеперечисленных инструментов. Читать далее ⚡

habr.com/ru/companies/simbirso

#data_engineering #data_quality #dbt #sql #python #pandas #great_expectations #sqlalchemy #greenplum

SPTRALsptral
2025-12-04

​🐍 Python y Bases de Datos
​Python es ideal para la administración de bases de datos. Con librerías como Psycopg2 (PostgreSQL), MySQLdb, o el ORM SQLAlchemy, puedes automatizar tareas como backups, migraciones, generación de reportes, y monitoreo. Su sintaxis clara hace que la manipulación de datos y la gestión del esquema sea más eficiente.

2025-12-03

context-async-sqlalchemy — лучший способ использовать sqlalchemy в async python приложении

Привет! Хочу рассказать о своей новой библиотеке context-async-sqlalchemy , которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.

habr.com/ru/articles/972932/

#sqlalchemy #python #async #asyncio #sql

David Lord :python:davidism@mas.to
2025-11-17

Saw that Pretty Printed recently made videos introducing Flask-SQLAlchemy-Lite and Flask-Alembic
youtube.com/watch?v=QglM2BQIQ0s
youtube.com/watch?v=fvgAFbehmiU
#Python #Flask #SQLAlchemy

David Lord :python:davidism@mas.to
2025-11-17

Just released Flask-Alembic 3.2.0. Added `check` and `current --check-heads` CLI commands to match the commands from Alembic. This was the second library I ever wrote, first published in 2014, and I still use it in every project. github.com/pallets-eco/flask-a #Python #Flask #SQLAlchemy

David Lord :python:davidism@mas.to
2025-11-17

Released Flask-SQLAlchemy-Lite 0.2.0 a few days ago! It has new methods `get_or_abort` and `one_or_abort` to help for querying for a row or 404 in a detail view. And a `test_isolation` helper to keep database changes isolated between tests. github.com/pallets-eco/flask-s #Python #Flask #SQLAlchemy

GripNewsGripNews
2025-11-15

🌘 SQLORM:在 Python 中無縫整合 SQL 與物件導向
➤ 打破傳統 ORM 框架的限制,以 SQL 為核心的 Python 資料庫操作新思維
hyperflask.dev/blog/2025/11/11
本文介紹 SQLORM,一個新型態的 Python 物件關聯對映 (ORM) 工具。作者因不滿意現有 ORM 的設計,特別是單元工作模式和查詢執行時機的不可控性,因而創造了 SQLORM。此工具以 SQL 為核心,允許開發者直接在 Python 函數中使用標準 SQL 語句,並透過 docblock 進行模板化。SQLORM 支援自動參數轉義、透過上下文管理器管理資料庫連線與交易、以及將查詢結果直接轉換為字典或自訂物件。它還提供了一個遵循 Active Record 模式的 `Model` 類別,簡化了基本的 CRUD 操作,同時也支援在模型類別中定義自訂 SQL 方法。SQLORM 的一

2025-11-13

When deleting in SqlAlchemy, how do I declare parent-child relationship in the parent so that the child is deleted ONLY when its relationship to its parent is not-nullable?
When I state cascade="all, delete" in the parent the child is deleted even if its relationship to the parent is nullable.
#Python #sqlalchemy #orm #database

DST Globaldstglobal
2025-11-13

Как использовать ИИ для модернизации архитектуры программного обеспечения

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

Сегодня корпоративные команды отправляют больше кода и чаще...

Источник: dstglobal.ru/club/1128-kak-isp

Как использовать ИИ для модернизации архитектуры программного обеспечения
2025-10-31

SQLAlchemy 2 Users, which do you prefer for transactions?

#python #sqlalchemy

2025-10-20

Практическое тестирование приложений

Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений. В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот процесс. Ну что ж, приступим

habr.com/ru/articles/958014/

#python #faststream #dishka #litestar #fastapi #sqlalchemy #pydantic #asgi #pytest

2025-10-15

@dashdsrdash Oh yeah, I'm not a fan of directly emitting SQL (hi, injection vectors!). Totally willing to wrap the creation of the SQL in a language-specific well-typed abstract syntax tree.

What's biting me in the ORM I'm using is that the ORM has a lot of implicit behavior around class construction but that abstraction is leaky. Among the leaks:

  • alembic auto-builds migration steps based on the shape of a sqlalchemy model. It can build migration scripts that don't run (for example, if you don't name your foreign keys it builds them with None names in the alembic script and aelmbic can't roll back an unnamed key).

  • we have a binding layer between sqlalchemy and strawberry (GraphQL API generation) that treats fields that are mapped columns and fields that are relationships differently. Knowing which fields are relationships and which are mapped columns is just something you go look up in the model.

At this point, I'd like to throw out about half of this magic and just have alembic migration files and a GraphQL binding layer that just builds SQL queries to populate GraphQL fields.

Part of me also wonders how much of my irritation is ORMs in general and how much is sqlalchemy in particular. The docs for sqlalchemy include examples for making one-to-one, one-to-many, and many-to-many mappings between model ORM constructs. Those three terms aren't keywords in the API, they're patterns you have to hold your mouth a specific way to make them happen in the model bindings. All this magic and they didn't provide a macro for the three most common patterns in relational database association? "But why though?"

#sqlalchemy #alembic #strawberry

2025-10-13

I'm starting to think the real problem I see with most ORM architectures is that SQL is, honestly, a really terse but expressive language in a way.

So when you go trying to wrap it in language-specific helpers, you end up with something remarkably more complex than SQL that your developers now need to understand on top of SQL.

#sql #sqlalchemy

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst