home.social

#orm — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #orm, aggregated by home.social.

fetched live
  1. Yii1: извлечение Active Record в отдельный composer пакет

    Может показаться, что старый Yii1 в 2026 году уже никому не нужен. Но, на удивление, проектов, застрявших на этом фреймворке, довольно много. Чаще всего сдерживающими факторами от переезда являются размер проекта, какие‑то свои надстройки над фреймворком или отсутствие денег у бизнеса. Переезд сопряжён с рисками получить два проекта на годы вперёд. Параллельно требуются какие‑либо доработки, что требует вдвое больше ресурсов и от разработчиков, и от бизнеса. Последний год я активно изучаю устройство современных PHP‑фреймворков и PSR‑стандарты. Относительно недавно мне пришла мысль: а что ценного есть в Yii1 и что блокирует возможность быстро съехать на другой фреймворк? Ответ довольно банален — это Active Record. Можно сказать, что это сердце фреймворка. Почему же так получилось? Как ни странно, внешний API данного слоя довольно неплох даже в 2026 году, не говоря уже о 2008-м, когда он появился на свет, а скорее всего, намного раньше. Что же мы имеем из возможностей данной ORM?

    habr.com/ru/articles/1069280/

    #Yii1 #Active_Record #composer_пакет #миграция_с_Yii1 #рефакторинг_легаси #PHP_84 #PSR11 #PSR14 #PSR16 #ORM

  2. Локальная база на клиенте: Blazor WebAssembly и MAUI на SQLite — без EF DbContext, Include и миграций

    Офлайн-хранилище со сложным графом и outbox: быстрый старт в MAUI и в браузере, базовые операции и почему в этой роли EF Core только мешает. Курьер спустился в подвал склада — связи нет. Кладовщик третий час принимает поставку в зоне, где вайфай добивает через раз. Пользователь заполнил форму на четыре экрана и нажал «Сохранить» в момент, когда сервер уехал на деплой. Приложение должно продолжать работать. Значит ему нужна своя база на устройстве : не кеш ответов, а полноценное локальное хранилище, где живут незавершённые документы, локальные состояния и очередь изменений на отправку — тот самый outbox, который дошлёт всё, когда связь вернётся. И вот тут начинается знакомое.

    habr.com/ru/articles/1068388/

    #c#_net #sqlite #blazor #maui #embedded #orm #redb #opensource

  3. [Перевод] Победить Hibernate в тестах. Возможно?

    Победить Hibernate в тестах. Сможем? Всем, привет! На связи Михаил Поливаха, технический лидер Open Source проекта Axelix (проект, посвященный помочь вам идентифицировать частые проблемы в Java server-side приложениях, в т.ч в рамках работы с Hibernate). Данная, последняя статья является продолжением небольшой серии статей ответов на вопросы, которые возникли у участников Spring АйО Академии в рамках программы Hibernate. Я рассмотрю оставшиеся последние вопросы, а именно: “Можно ли в тестах как-то проверить, что Hibernate под капотом делает что-то страшное?” Тут очень важно не давать вам “рыбу”, а научить вас рыбачить, т.е. дать вам некоторый фреймворк о том, что стоит держать в уме при работе с Hibernate.

    habr.com/ru/companies/spring_a

    #java #hibernate #axelix #orm #sql #jpa #test #unittesting #springdata #springboot

  4. JOIN как в ORM: связи по foreign key в PostgreSQL

    SELECT * FROM document, client(document) запрос, который ходит по связям вместо ON. Как включить такую навигацию на ванильном PostgreSQL — без патчей, расширений и нового синтаксиса, — почему стандарт SQL не научился этому за сорок лет и кто пытался его дожать — под катом.

    habr.com/ru/articles/1065684/

    #sql #join #foreign_key #orm #relations #postgresql

  5. Предзагрузил пачкой — получил N² запросов. Как expire_on_commit превращает оптимизацию в квадрат

    Бывают ошибки, которые не видит ни ревью, ни тесты: код отрабатывает правильно, прогон зелёный, а запросов к базе он делает в сто раз больше прежнего. Я убрал из фонового планировщика классический N+1 — самым что ни на есть учебным способом — и чуть не выкатил в прод версию, где нагрузка росла как квадрат числа пользователей. Разбираемся с замерами в руках: при чём тут expire_on_commit, почему предзагрузка пачкой сама по себе ни в чём не виновата и как одна строка превращает цикл в N².

    habr.com/ru/articles/1065546/

    #sqlalchemy #orm #postgresql #python #n+1 #оптимизация #производительность #expire_on_commit #профилирование

  6. Due to the recent changes to repo policy at #codeberg, we've moved #SPARQLMojo to #gitlab.

    SPARQLMojo is a #FLOSS #Python #ORM library for #SPARQL.

    It's very functional, but is still a work in progress. Have a look!

    gitlab.com/gitterdan/sparqlmojo

    gitterdan.gitlab.io/sparqlmojo/

  7. Due to the recent changes to repo policy at #codeberg, we've moved #SPARQLMojo to #gitlab.

    SPARQLMojo is a #FLOSS #Python #ORM library for #SPARQL.

    It's very functional, but is still a work in progress. Have a look!

    gitlab.com/gitterdan/sparqlmojo

    gitterdan.gitlab.io/sparqlmojo/

  8. Hours before going for vacation it occurred to me, that my work on #Neo4j #VirtualGraph has been nothing but a continuation of what I am doing now for way over a decade: Enjoying myself a bit of #query languages AND #ObjectMapping

    Neo4j Virtual Graph might be the last #ORM you ever need: It maps your relational data not into a somewhat boring object graph, but a property graph that can be queried in not all, but a lot of great ways that only #Cypher lets you.

  9. Hours before going for vacation it occurred to me, that my work on #Neo4j #VirtualGraph has been nothing but a continuation of what I am doing now for way over a decade: Enjoying myself a bit of #query languages AND #ObjectMapping

    Neo4j Virtual Graph might be the last #ORM you ever need: It maps your relational data not into a somewhat boring object graph, but a property graph that can be queried in not all, but a lot of great ways that only #Cypher lets you.

  10. Я написал ASGI-фреймворк, в котором дерево папок — это и есть API

    Несколько месяцев пилил pet-проект, который зашёл дальше, чем планировал: файловый ASGI-фреймворк, где дерево папок — это и есть таблица роутов. Сегодня вышла версия 1.0 — с адверсариальным security-аудитом (нашёл у себя pickle RCE и CSWSH), 2329 тестами и нативным async на PostgreSQL. Рассказываю, что внутри и что было больнее всего сделать правильно. Узнать подробнее об EndoCore

    habr.com/ru/articles/1062742/

    #python #asgi #вебфреймворк #orm #postgresql #open_source #безопасность #тестирование #бэкенд

  11. Я сделал ASGI-фреймворк, где дерево папок — и есть API

    Рассказываю, как я сам сделал ASGI-фреймворк, в котором дерево папок заменяет таблицу маршрутов, — и почему это решает проблему расхождения роутов с кодом. Разбираю встроенную безопасную ORM, показываю на примерах, как версионирование превращается в копирование папки, и честно привожу гоночные тесты на реальной конкурентности. Узнать больше про EndoCore

    habr.com/ru/articles/1062686/

    #python #asgi #orm #backend #opensource #вебразработка #фреймворк

  12. The O(N+1) database query problem is a common database issue where one query is used to retrieve a list of records ("1"), and after that one additional query for every record ("N"). This can quickly become a performance problem for obvious reasons.

    Software Engineer Thodoris Kouleris reviews the various techniques used to solve this problem cleanly in this July 20th, 2026 write-up.

    "Killing the N+1 Query Problem"

    tkouleris.eu/blog/killing-the-

    #databases #sql #optimization #orm #programming

  13. The O(N+1) database query problem is a common database issue where one query is used to retrieve a list of records ("1"), and after that one additional query for every record ("N"). This can quickly become a performance problem for obvious reasons.

    Software Engineer Thodoris Kouleris reviews the various techniques used to solve this problem cleanly in this July 20th, 2026 write-up.

    "Killing the N+1 Query Problem"

    tkouleris.eu/blog/killing-the-

    #databases #sql #optimization #orm #programming

  14. Сегодня я для себя открыл: Pony ORM

    Читатели хабра знают меня как автора статей о django. Например, в предыдущем посте я писал о том, как собирался переписывать django на async/await. Кстати, первые эксперименты подтвердили, что подход рабочий, и что django отлично поддаётся переписыванию. А также - что он хорошо расширяем и содержит код высокого качества. Однако, я пришёл к выводу, что несмотря на эти достоинства, django сильно уступает Pony ORM, которая, в отличие от django и других ORM, ещё и спроектирована правильно - способом, дружественным к оптимизациям. Не случайно в статьях, которые есть о ней на хабре, её хвалят именно за производительность. В этой статье речь пойдёт о Pony ORM, но не о фичах для пользователя, которых, кстати, много (о которых можно узнать в этих видео 1 , 2 ), а о её внутренней архитектуре.

    habr.com/ru/articles/1056970/

    #orm #ponyorm #sessions #caching

  15. Что вам нужно знать про семантику List и Set в Hibernate

    Привет, друзья! На связи Михаил Поливаха, технический лидер проекта Axelix . В рамках Spring АйО Академии я встречал большое количество похожих вопросов, посвященных правильному дизайну сущностей и другим похожим вопросам. Я обещался на все эти вопросы ответить в рамках статьи. На самом деле, одной статьи у меня не вышло, скорее всего, будет серия статей. Надеюсь, будет интересно :)

    habr.com/ru/companies/spring_a

    #hibernate #java #orm #sql #springdata

  16. Что будет, если убрать из ORM предположение «одна таблица — одна entity»?

    Большинство ORM строятся вокруг естественного предположения: одной таблице соответствует одна entity . Это настолько привычно, что даже не обращаешь внимания. Это не правило, но вокруг него проектируются почти все остальные механизмы: метаданные принадлежат классу, Unit of Work отслеживает экземпляры этого класса, миграции собираются из его описания, а объектная модель постепенно начинает повторять структуру базы данных. Но часто в коде не требуется вся таблица, многие поля служат только конкретным процессам и ни читать, ни менять эти поля в других процессах не требуется. В статье посмотрим два подхода работы с сущностями. А также к чему я пришёл, попробовав сделать по‑другому.

    habr.com/ru/articles/1059492/

    #php #orm #database #design_thinking #library #opensource

  17. Business Reputation Management Company in Chicago
    Remove negative search results, build trust, and grow your brand with expert Online Reputation Management.

    #OnlineReputation #ORM #SEO #BrandReputation #DigitalMarketing

  18. Business Reputation Management Company in Chicago
    Remove negative search results, build trust, and grow your brand with expert Online Reputation Management.

    #OnlineReputation #ORM #SEO #BrandReputation #DigitalMarketing

  19. If your idea of "learning" involves building an ivory tower of ORMs just to tear it down and *rediscover* plain old #SQL, congrats! 🎉 You’ve reinvented #the #wheel while riding a unicycle. 🚴‍♂️ Maybe next time, skip the #ORM rollercoaster and just open a SQL textbook, genius. 📚😂
    wozniak.ca/blog/2014/08/03/1/i #learning #reinventing #database #humor #HackerNews #ngated

  20. If your idea of "learning" involves building an ivory tower of ORMs just to tear it down and *rediscover* plain old #SQL, congrats! 🎉 You’ve reinvented #the #wheel while riding a unicycle. 🚴‍♂️ Maybe next time, skip the #ORM rollercoaster and just open a SQL textbook, genius. 📚😂
    wozniak.ca/blog/2014/08/03/1/i #learning #reinventing #database #humor #HackerNews #ngated

  21. DTO, schema, model, entity: почему в коде всё называется User

    Один User сначала кажется удобным: его можно принять в запросе, вернуть из API, сохранить в базу и передать дальше. Но со временем такой класс смешивает разные границы и перестаёт защищать код. Разбираю на Python-примерах, чем отличаются DTO, schema, model и entity — и когда отдельные классы действительно нужны.

    habr.com/ru/articles/1054614/

    #python #backend #api #dto #pydantic #sqlalchemy #архитектура #orm #naming #django

  22. Анатомия SQLite-провайдера: уходим от EF Core — типизированное хранилище для десктопа, мобайла и Blazor WASM

    Серия: redb ecosystem (инженерный разбор после анонса 3.2.1) Когда вышел SQLite-провайдер 3.2.1 , анонс был на пару абзацев: «тот же LINQ, одна строка в DI». Эта статья — противоположность анонса. Здесь не «что вышло», а как оно устроено и где у нас потекло . Конкретно: как движок запросов redb переехал в нативное C-расширение там, где у базы нет хранимок; как мы храним DateTimeOffset в базе, у которой нет типа «дата»; и три бага из этого релиза, разобранные с фильтр-JSON, сгенерированным SQL и фиксом. Это длинно и с кодом. Если хочется коротко — читайте анонс по ссылке выше. Если интересно, что под капотом «одной строки в DI», — устраивайтесь.

    habr.com/ru/articles/1053672/

    #C# #NET #SQLite #Blazor #MAUI #embedded #ORM #redb #opensource

  23. RE: social.breizhcamp.org/@pythonr

    Mercredi soir, c'est la dernière session de #PythonRennes de la saison. On y parlera majoritairement de #SQL donc ça peut vous intéresser même si vous ne faîtes pas de #Python.

    - Plaidoyer pour un monde sans #ORM par Jonathan Leger.
    - SQL avancé (via ORM #Django) par moi même.

    Il reste des places et la météo sera agréable. Inscription sur meetup.com/python-rennes/event.

    Merci Liksi pour l'accueil !

    #Rennes

  24. RE: social.breizhcamp.org/@pythonr

    Mercredi soir, c'est la dernière session de #PythonRennes de la saison. On y parlera majoritairement de #SQL donc ça peut vous intéresser même si vous ne faîtes pas de #Python.

    - Plaidoyer pour un monde sans #ORM par Jonathan Leger.
    - SQL avancé (via ORM #Django) par moi même.

    Il reste des places et la météo sera agréable. Inscription sur meetup.com/python-rennes/event.

    Merci Liksi pour l'accueil !

    #Rennes

  25. Prepared Statement и Java: как не облажаться на собеседовании

    На PreparedStatement обычно заканчивается вводный курс по JDBC / PostgreSQL. Все довольно просто, пока не задумываешься: а работает ли оно как надо в моем крутом инновационном приложении? Дальше интереснее: как PostgreSQL выбирает custom или generic plan? кто именно кэширует statements? как с этим дружат ORM и внешние пулы? По закону подлости все выясняется на собеседовании, в контексте “начальных банальных вопросов по БД”. Разберемся в подробностях и закроем эту тему

    habr.com/ru/articles/1052404/

    #postgresql #jdbc #prepared_statements #pgbouncer #spring_boot #orm

  26. Django-style фильтры поверх SQLAlchemy: зачем я написал python пакет sqlalchemy-query-manager

    TL;DR: я сделал sqlalchemy-query-manager — небольшой слой поверх SQLAlchemy для типовых backend-запросов. Он не заменяет SQLAlchemy, а добавляет более компактную запись для частых операций: фильтры в стиле number__gte=100 , условия через Q , фильтрацию по связанным моделям, eager loading, CRUD helpers, агрегаты и просмотр итогового SQL. Идея в том, чтобы оставить SQLAlchemy в основе, но убрать повторяющийся код там, где запросы становятся слишком большими.

    habr.com/ru/articles/1052518/

    #sqlalchemy #python #orm #sql #djangostyle_filters #crud #flask #fastapi #open_source #sqlalchemyquerymanager

  27. Dev Leader's Nick Cosentino (@devleader) writes up a great guide to Entity Framework Core optimization for .NET 10 in a structured fashion. From simple-to-implement read performance enhancements, to deep dives that include bulk operations, connection pooling, caching, parameterized queries, logging using Serilog, and many others.

    "EF Core Performance Best Practices in .NET 10"

    devleader.ca/2026/06/23/ef-cor

    #dotnet #csharp #efcore #orm #databases #sql #programming #optimization

  28. Dev Leader's Nick Cosentino (@devleader) writes up a great guide to Entity Framework Core optimization for .NET 10 in a structured fashion. From simple-to-implement read performance enhancements, to deep dives that include bulk operations, connection pooling, caching, parameterized queries, logging using Serilog, and many others.

    "EF Core Performance Best Practices in .NET 10"

    devleader.ca/2026/06/23/ef-cor

    #dotnet #csharp #efcore #orm #databases #sql #programming #optimization

  29. 🎉 Introducing the latest craze for people who think ORMs are *so* last year: Bun-sqlgen! Now, you too can enjoy the thrilling experience of writing raw SQL while pretending it's type-safe. 🚀 It's like trading in your car for a horse because you miss shoveling manure. 🐴💩
    github.com/ilbertt/bun-sqlgen #Bunsqlgen #ORM #SQLTypeSafe #TechTrends #CodingHumor #HackerNews #ngated

  30. 🎉 Introducing the latest craze for people who think ORMs are *so* last year: Bun-sqlgen! Now, you too can enjoy the thrilling experience of writing raw SQL while pretending it's type-safe. 🚀 It's like trading in your car for a horse because you miss shoveling manure. 🐴💩
    github.com/ilbertt/bun-sqlgen #Bunsqlgen #ORM #SQLTypeSafe #TechTrends #CodingHumor #HackerNews #ngated

  31. ORM — есть ли профит? Особенно когда по двору бегает ИИ-шка

    ORM — Object-Relational Mapping — Объектно-реляционное отображение — это технология, позволяющая связывать SQL-ые БД с ООП кодом. Самая известная из них — Hibernate. Hibernate — очень красивая технология. Она формирует ощущение магии. Ты просто создаёшь объект, — хлабысь! — он уже в базе данных. Никакого SQL, никаких соединений, никаких ResultSet. Всё происходит как будто само собой. Прелесть. Именно поэтому отказаться от Hibernate так тяжело. Это напоминает Кольцо Всевластия из «Властелина колец». Оно не просто давало силу — оно меняло сознание своего владельца. Оно внушало мысль, что без него уже нельзя. Что именно оно даёт власть и контроль. Hibernate действует очень похоже. Он формирует ощущение, что именно он управляет данными. Что именно он связывает код с базой. Что без него всё развалится. И ты начинаешь бояться. Бояться, что без Hibernate придётся писать бесконечный SQL. Бояться, что потеряешь контроль над данными. Бояться, что любая операция с базой превратится в мучение. Ты уже не представляешь себе проект без этой магии. Ты настолько к ней привык, что мысль «выкинуть Hibernate» кажется почти кощунственной. Кажется, будто вместе с ним исчезнет и сама возможность нормально работать с базой данных.

    habr.com/ru/articles/1050990/

    #ORM #hibernate #sql

  32. Когда Hibernate плевать на ваш OneToOne Lazy Loading

    Привет, Друзья! На связи Михаил Поливаха, технический лидер проекта Axelix . В рамках программы Hibernate в Spring АйО Academy мы краем обсудили тему, касаемую того, что @OneToOne отличается от других отношений. В частности, Hibernate может спокойно грузить его Eagerly, даже если вы явно поставите FetchType.LAZY . У парней был закономерный вопрос - почему? И знаете, к моему удивлению, нормального материала в сети я не нашёл. В общем, решил выпустить статью, которая не просто отвечает на этот вопрос, а даёт прямо хороший, развернутый ответ на то, почему Hibernate это делает. Иными словами, я в статье постараюсь детально пояснить: Что на самом деле такое FetchType.LAZY ? Почему @OneToOne не всегда возможно сделать Lazy именно в Java ? Почему при этом @ManyToOne можно сделать Lazy всегда (предполагая не final класс сущности)? Разберём по шагам.

    habr.com/ru/companies/spring_a

    #hibernate #java #spring #orm #axelix #springdata

  33. [Перевод] Новые возможности Hibernate 7.4

    Hibernate 7.4 исправляет старую проблему с пагинацией и fetch join. Раньше запрос на первые 10 Order вместе с OrderItem не мог безопасно ограничиться на уровне SQL. Из-за join один заказ превращался в несколько строк, и limit мог обрезать коллекцию. Поэтому Hibernate загружал все подходящие строки, а страницу выбирал уже в памяти. На больших данных это било по памяти и могло закончиться OutOfMemoryException . Теперь Hibernate сначала выбирает нужные id родительских сущностей во вложенном запросе, а затем загружает для них полные дочерние коллекции. Пагинация остается в БД, данные не режутся. Еще в 7.4 появились history и audit tables. @Temporal хранит версии строк и позволяет читать сущность на конкретный момент времени. @Audited пишет изменения ADD / MOD / DEL в audit-таблицу без Envers.

    habr.com/ru/companies/spring_a

    #hibernate #hibernate_orm #orm #java #jpa #kotlin

  34. Here's a hidden #npm gem that I use all the time:

    > Queryize.js - A no-frills chainable interface for constructing mutable #MySQL queries procedurally in #Nodejs

    (It says "MySQL", but it's flexible enough to use with other #SQL dialects. I mostly use it for #SQLite.)

    It sits right in the sweet spot between an #orm and manually fiddling with query strings. The last release is 6+ years old, but it still works just fine. That in itself is a seal of quality.

    twipped.github.io/QueryizeJS/

    #javascript

  35. Our next #JCON2026 session is live: 'When #ORM Becomes OMG: #Performance Pitfalls in JPA and Friends' with Jos Roseboom

    #JPA makes #database interaction feel almost magical—until your app grinds to a halt. In this talk, we’ll take a tour …

    Grab your coffee and hit play: youtu.be/RjnXUFyXlno

  36. Just recorded my talk for @posetteconf 2026:
    "PostgreSQL Generated Columns by Example" 🐘

    Tune in on June 17th to watch my talk: 📆
    posetteconf.com/2026/talks/pos

    Check also the schedule for many more PostgreSQL talks!👇 posetteconf.com/2026/

    Thanks @clairegiordano for the support during the recording.🙏

    #PostgreSQL #Python #Django #ORM #GeneratedColumn #GeneratedField #PosetteConf #Postgres #Database #Community #OpenSource

    CC @pycon @django @ubuntu

  37. #JPA is not a silver bullet — but it doesn’t have to be a bottleneck either. Julius Mischok shows when to tune JPA, when to use projections, and when plain SQL is the better choice.

    Read the full piece: javapro.io/2025/12/31/high-spe

    #ORM #Java #Persistence #Hibernate #CleanCode

  38. The Quiet Age of Qud

    Journey throughout Qud as an agile Drek, a strong Orm, or a wise Mavot. Shift the world to your liking with resonance, make use of mana for spiritual practice, and fend off or stand with the Sivilao invaders.

    steamcommunity.com/sharedfiles

    Made with Patches him self's help.

    #TheQuietAge #Drek #Drekir #Orm #Ormer #Mavot #Mavotur #CavesOfQud

  39. In the vast digital landscape, maintaining a positive brand image is vital. Online Reputation Management (ORM) involves monitoring and responding to online feedback, managing search results, and publishing accurate content. These strategies not only protect trust but also drive conversions. Explore how ORM can transform your brand's online presence: ranksignal.ai/glossary/online-
    #ORM #BrandTrust #DigitalPresence

  40. Oh wow, another ORM! Because clearly, the world was begging for a "Pydantic-native async #ORM with a #Rust core" 😂. It's like they threw #buzzwords into a blender and hit "high performance"! 🥴
    github.com/mr-fatalyst/oxyde #Pydantic #HighPerformance #HackerNews #ngated