home.social

#миграции — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #миграции, aggregated by home.social.

  1. Обновление Битрикса через миграции: как не словить инсульт, нажимая «Обновить»

    Привет! Меня зовут Артем Валевич, я тимлид в

    habr.com/ru/companies/agima/ar

    #миграции #битрикс #php

  2. Обновление Битрикса через миграции: как не словить инсульт, нажимая «Обновить»

    Привет! Меня зовут Артем Валевич, я тимлид в

    habr.com/ru/companies/agima/ar

    #миграции #битрикс #php

  3. Обновление Битрикса через миграции: как не словить инсульт, нажимая «Обновить»

    Привет! Меня зовут Артем Валевич, я тимлид в

    habr.com/ru/companies/agima/ar

    #миграции #битрикс #php

  4. Обновление Битрикса через миграции: как не словить инсульт, нажимая «Обновить»

    Привет! Меня зовут Артем Валевич, я тимлид в

    habr.com/ru/companies/agima/ar

    #миграции #битрикс #php

  5. Миграции конфигурации Битрикс24 CRM: как мы перестали делать это руками

    Если вы разрабатываете на Битрикс24 и поддерживаете несколько окружений — тест, стейдж, прод — вы знаете эту боль. Настроил воронку, добавил пользовательские поля, написал робота с десятком условий, всё это поправил в карточке, назначил права. А потом нужно повторить то же самое на проде. Руками. Забыв половину. Конфигурация CRM — это не код. Она живёт в базе данных, не попадает в git, и нет адекватного механизма переноса между окружениями. При этом объём этой конфигурации на реальных проектах значительный: десятки смарт-процессов, сотни пользовательских полей, сложные роботы с условиями, матрицы прав доступа, кастомные виды карточек. Всё это нужно как-то синхронизировать. В Битрикс24 есть разрозненные инструменты для переноса отдельных частей настроек — штатный экспорт некоторых сущностей через интерфейс, партнёрские модули, закрывающие часть задач. Но каждый работает по-своему, покрывает свой кусок, и ни один не даёт того, что нужно на реальном проекте: полного покрытия CRM-конфигурации в одном инструменте, версионируемого вместе с кодом. Мы прошли этот путь и в итоге написали набор Version Builder'ов для модуля sprint.migration , покрывающих основные сущности CRM Битрикс24. В этой статье — о самой задаче, подходе и подводных камнях. Пишите в личку по вопросам.

    habr.com/ru/articles/1036734/

    #битрикс24 #crm #миграции #sprintmigration #php #деплой #автоматизация #воронки

  6. Миграции конфигурации Битрикс24 CRM: как мы перестали делать это руками

    Если вы разрабатываете на Битрикс24 и поддерживаете несколько окружений — тест, стейдж, прод — вы знаете эту боль. Настроил воронку, добавил пользовательские поля, написал робота с десятком условий, всё это поправил в карточке, назначил права. А потом нужно повторить то же самое на проде. Руками. Забыв половину. Конфигурация CRM — это не код. Она живёт в базе данных, не попадает в git, и нет адекватного механизма переноса между окружениями. При этом объём этой конфигурации на реальных проектах значительный: десятки смарт-процессов, сотни пользовательских полей, сложные роботы с условиями, матрицы прав доступа, кастомные виды карточек. Всё это нужно как-то синхронизировать. В Битрикс24 есть разрозненные инструменты для переноса отдельных частей настроек — штатный экспорт некоторых сущностей через интерфейс, партнёрские модули, закрывающие часть задач. Но каждый работает по-своему, покрывает свой кусок, и ни один не даёт того, что нужно на реальном проекте: полного покрытия CRM-конфигурации в одном инструменте, версионируемого вместе с кодом. Мы прошли этот путь и в итоге написали набор Version Builder'ов для модуля sprint.migration , покрывающих основные сущности CRM Битрикс24. В этой статье — о самой задаче, подходе и подводных камнях. Пишите в личку по вопросам.

    habr.com/ru/articles/1036734/

    #битрикс24 #crm #миграции #sprintmigration #php #деплой #автоматизация #воронки

  7. Миграции конфигурации Битрикс24 CRM: как мы перестали делать это руками

    Если вы разрабатываете на Битрикс24 и поддерживаете несколько окружений — тест, стейдж, прод — вы знаете эту боль. Настроил воронку, добавил пользовательские поля, написал робота с десятком условий, всё это поправил в карточке, назначил права. А потом нужно повторить то же самое на проде. Руками. Забыв половину. Конфигурация CRM — это не код. Она живёт в базе данных, не попадает в git, и нет адекватного механизма переноса между окружениями. При этом объём этой конфигурации на реальных проектах значительный: десятки смарт-процессов, сотни пользовательских полей, сложные роботы с условиями, матрицы прав доступа, кастомные виды карточек. Всё это нужно как-то синхронизировать. В Битрикс24 есть разрозненные инструменты для переноса отдельных частей настроек — штатный экспорт некоторых сущностей через интерфейс, партнёрские модули, закрывающие часть задач. Но каждый работает по-своему, покрывает свой кусок, и ни один не даёт того, что нужно на реальном проекте: полного покрытия CRM-конфигурации в одном инструменте, версионируемого вместе с кодом. Мы прошли этот путь и в итоге написали набор Version Builder'ов для модуля sprint.migration , покрывающих основные сущности CRM Битрикс24. В этой статье — о самой задаче, подходе и подводных камнях. Пишите в личку по вопросам.

    habr.com/ru/articles/1036734/

    #битрикс24 #crm #миграции #sprintmigration #php #деплой #автоматизация #воронки

  8. Миграции конфигурации Битрикс24 CRM: как мы перестали делать это руками

    Если вы разрабатываете на Битрикс24 и поддерживаете несколько окружений — тест, стейдж, прод — вы знаете эту боль. Настроил воронку, добавил пользовательские поля, написал робота с десятком условий, всё это поправил в карточке, назначил права. А потом нужно повторить то же самое на проде. Руками. Забыв половину. Конфигурация CRM — это не код. Она живёт в базе данных, не попадает в git, и нет адекватного механизма переноса между окружениями. При этом объём этой конфигурации на реальных проектах значительный: десятки смарт-процессов, сотни пользовательских полей, сложные роботы с условиями, матрицы прав доступа, кастомные виды карточек. Всё это нужно как-то синхронизировать. В Битрикс24 есть разрозненные инструменты для переноса отдельных частей настроек — штатный экспорт некоторых сущностей через интерфейс, партнёрские модули, закрывающие часть задач. Но каждый работает по-своему, покрывает свой кусок, и ни один не даёт того, что нужно на реальном проекте: полного покрытия CRM-конфигурации в одном инструменте, версионируемого вместе с кодом. Мы прошли этот путь и в итоге написали набор Version Builder'ов для модуля sprint.migration , покрывающих основные сущности CRM Битрикс24. В этой статье — о самой задаче, подходе и подводных камнях. Пишите в личку по вопросам.

    habr.com/ru/articles/1036734/

    #битрикс24 #crm #миграции #sprintmigration #php #деплой #автоматизация #воронки

  9. manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

    Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube-канала PyLounge . Это третья часть мини-серии о Django-миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда. В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False , как пишется правильный паттерн expand-migrate-contract , зачемнужны AddIndexConcurrently , AddConstraintNotValid , SeparateDatabaseAndState и как обновлять данные на больших таблицах. P.S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже - но шаги те же. P.S.S. При подготовки этого материала ни одна продовая база данных не пострадала.

    habr.com/ru/articles/1035830/

    #python #django #pylounge #базы_данных #миграции_django #миграции #postgresql #программирование

  10. manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

    Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube-канала PyLounge . Это третья часть мини-серии о Django-миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда. В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False , как пишется правильный паттерн expand-migrate-contract , зачемнужны AddIndexConcurrently , AddConstraintNotValid , SeparateDatabaseAndState и как обновлять данные на больших таблицах. P.S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже - но шаги те же. P.S.S. При подготовки этого материала ни одна продовая база данных не пострадала.

    habr.com/ru/articles/1035830/

    #python #django #pylounge #базы_данных #миграции_django #миграции #postgresql #программирование

  11. manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

    Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube-канала PyLounge . Это третья часть мини-серии о Django-миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда. В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False , как пишется правильный паттерн expand-migrate-contract , зачемнужны AddIndexConcurrently , AddConstraintNotValid , SeparateDatabaseAndState и как обновлять данные на больших таблицах. P.S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже - но шаги те же. P.S.S. При подготовки этого материала ни одна продовая база данных не пострадала.

    habr.com/ru/articles/1035830/

    #python #django #pylounge #базы_данных #миграции_django #миграции #postgresql #программирование

  12. manage.py migrate в пятницу в 17:30 на проде с 3K RPS и таблицей 200М строк

    Всем привет! Меня зовут Макс, я Lead Backend и автор YouTube-канала PyLounge . Это третья часть мини-серии о Django-миграциях. В первой части мы готовились к миграциям и разбирались с конфликтами, во второй чинили типичные подводные камни. Если их не читали, то рекомендую начать именно с них, а затем вернуться сюда. В этом же материале поговорим о самом интересном: что происходит, когда python manage.py migrate запускается в 17:30 в пятницу на проде, под 3k RPS и таблицей в 200 миллионов строк. Расскажу какие блокировки в PostgreSQL берёт каждая операция Django, что внутри atomic = False , как пишется правильный паттерн expand-migrate-contract , зачемнужны AddIndexConcurrently , AddConstraintNotValid , SeparateDatabaseAndState и как обновлять данные на больших таблицах. P.S. примеры намеренно упрощены, чтобы влезли в статью и не задушили. В реальной жизни всё ещё хуже - но шаги те же. P.S.S. При подготовки этого материала ни одна продовая база данных не пострадала.

    habr.com/ru/articles/1035830/

    #python #django #pylounge #базы_данных #миграции_django #миграции #postgresql #программирование

  13. Production-стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

    Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений , E2E , WebRTC звонки , Electron , outbox-паттерн . Параллельно про AI-агента Лиру и мнение про вайб-кодинг . Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19603 строки , 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push-нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит. В статье разберу почему стек именно такой, какие решения оказались правильными, какие я бы поменял если бы начинал сейчас, и где у этого подхода границы применимости. Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло-разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

    habr.com/ru/articles/1034814/

    #fastapi #sqlite #python #монолит #websocket #мессенджер #бэкенд #продакшн #авторизация #миграции

  14. Production-стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

    Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений , E2E , WebRTC звонки , Electron , outbox-паттерн . Параллельно про AI-агента Лиру и мнение про вайб-кодинг . Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19603 строки , 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push-нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит. В статье разберу почему стек именно такой, какие решения оказались правильными, какие я бы поменял если бы начинал сейчас, и где у этого подхода границы применимости. Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло-разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

    habr.com/ru/articles/1034814/

    #fastapi #sqlite #python #монолит #websocket #мессенджер #бэкенд #продакшн #авторизация #миграции

  15. Production-стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

    Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений , E2E , WebRTC звонки , Electron , outbox-паттерн . Параллельно про AI-агента Лиру и мнение про вайб-кодинг . Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19603 строки , 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push-нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит. В статье разберу почему стек именно такой, какие решения оказались правильными, какие я бы поменял если бы начинал сейчас, и где у этого подхода границы применимости. Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло-разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

    habr.com/ru/articles/1034814/

    #fastapi #sqlite #python #монолит #websocket #мессенджер #бэкенд #продакшн #авторизация #миграции

  16. Production-стек для мессенджера на 10к пользователей: FastAPI, SQLite в проде и почему монолит

    Это восьмая статья из моей серии про инженерные решения в ONEMIX. До этого было про клиентскую часть мессенджера: кэш сообщений , E2E , WebRTC звонки , Electron , outbox-паттерн . Параллельно про AI-агента Лиру и мнение про вайб-кодинг . Сегодня про серверную сторону. Backend ONEMIX — это один файл main.py на 19603 строки , 379 эндпоинтов, FastAPI + SQLite, держит мессенджер с регистрацией через SMS, звонками через LiveKit, E2E через Double Ratchet, push-нотификациями на iOS и Android. Этот файл я пишу больше года. За это время он эволюционировал из прототипа на 800 строк в production монолит. В статье разберу почему стек именно такой, какие решения оказались правильными, какие я бы поменял если бы начинал сейчас, и где у этого подхода границы применимости. Сразу важная оговорка. У меня не было требования держать 100к одновременных пользователей или 10к RPS. Это бэкенд под мобильное приложение с трафиком который для соло-разработчика разумно поддерживать одному. Если у вас задачи другого масштаба, мой опыт может не подойти.

    habr.com/ru/articles/1034814/

    #fastapi #sqlite #python #монолит #websocket #мессенджер #бэкенд #продакшн #авторизация #миграции

  17. 33 несчастья или история одного проекта

    Эту печальную историю стоит прочесть всем, кто еще не понял разницы между «создать» и «владеть» применительно к программному обеспечению. Заодно узнаете, чем на самом деле занимаются большинство разработчиков на крупных проектах.

    habr.com/ru/articles/1019456/

    #scala #spring #hibernate #продукт #java #javascript #история_успеха #миграции

  18. 33 несчастья или история одного проекта

    Эту печальную историю стоит прочесть всем, кто еще не понял разницы между «создать» и «владеть» применительно к программному обеспечению. Заодно узнаете, чем на самом деле занимаются большинство разработчиков на крупных проектах.

    habr.com/ru/articles/1019456/

    #scala #spring #hibernate #продукт #java #javascript #история_успеха #миграции

  19. 33 несчастья или история одного проекта

    Эту печальную историю стоит прочесть всем, кто еще не понял разницы между «создать» и «владеть» применительно к программному обеспечению. Заодно узнаете, чем на самом деле занимаются большинство разработчиков на крупных проектах.

    habr.com/ru/articles/1019456/

    #scala #spring #hibernate #продукт #java #javascript #история_успеха #миграции

  20. 33 несчастья или история одного проекта

    Эту печальную историю стоит прочесть всем, кто еще не понял разницы между «создать» и «владеть» применительно к программному обеспечению. Заодно узнаете, чем на самом деле занимаются большинство разработчиков на крупных проектах.

    habr.com/ru/articles/1019456/

    #scala #spring #hibernate #продукт #java #javascript #история_успеха #миграции

  21. Техрадар на максималках: от визуализации техдолга к автоматическому управлению миграциями

    В прошлой статье я рассказывал, как мы оживили техрадар: научили систему автоматически обходить git репозитории, определять стек технологий, находить устаревшие зависимости и визуализировать технологический ландшафт компании. Это важный шаг в развитии внутренних процессов, но он покрывал только часть потребностей команды. Со временем стабилизация сбора и анализа состава ИТ-ландшафта позволила нам выйти на следующий логический этап - управление изменениями. Сегодня техрадар — это уже не просто система наблюдения, но полноценный пункт управления вашим ИТ-ландшафтом, умеющий управлять миграциями технологий системно и автоматически. Подробности под катом

    habr.com/ru/articles/1000400/

    #мониторинг #разработка #управление_разработкой #аудит #миграции #проблемы_разработки_по #технологический_стек #техрадар #techradar #it_инфраструктура

  22. Техрадар на максималках: от визуализации техдолга к автоматическому управлению миграциями

    В прошлой статье я рассказывал, как мы оживили техрадар: научили систему автоматически обходить git репозитории, определять стек технологий, находить устаревшие зависимости и визуализировать технологический ландшафт компании. Это важный шаг в развитии внутренних процессов, но он покрывал только часть потребностей команды. Со временем стабилизация сбора и анализа состава ИТ-ландшафта позволила нам выйти на следующий логический этап - управление изменениями. Сегодня техрадар — это уже не просто система наблюдения, но полноценный пункт управления вашим ИТ-ландшафтом, умеющий управлять миграциями технологий системно и автоматически. Подробности под катом

    habr.com/ru/articles/1000400/

    #мониторинг #разработка #управление_разработкой #аудит #миграции #проблемы_разработки_по #технологический_стек #техрадар #techradar #it_инфраструктура

  23. Техрадар на максималках: от визуализации техдолга к автоматическому управлению миграциями

    В прошлой статье я рассказывал, как мы оживили техрадар: научили систему автоматически обходить git репозитории, определять стек технологий, находить устаревшие зависимости и визуализировать технологический ландшафт компании. Это важный шаг в развитии внутренних процессов, но он покрывал только часть потребностей команды. Со временем стабилизация сбора и анализа состава ИТ-ландшафта позволила нам выйти на следующий логический этап - управление изменениями. Сегодня техрадар — это уже не просто система наблюдения, но полноценный пункт управления вашим ИТ-ландшафтом, умеющий управлять миграциями технологий системно и автоматически. Подробности под катом

    habr.com/ru/articles/1000400/

    #мониторинг #разработка #управление_разработкой #аудит #миграции #проблемы_разработки_по #технологический_стек #техрадар #techradar #it_инфраструктура

  24. Техрадар на максималках: от визуализации техдолга к автоматическому управлению миграциями

    В прошлой статье я рассказывал, как мы оживили техрадар: научили систему автоматически обходить git репозитории, определять стек технологий, находить устаревшие зависимости и визуализировать технологический ландшафт компании. Это важный шаг в развитии внутренних процессов, но он покрывал только часть потребностей команды. Со временем стабилизация сбора и анализа состава ИТ-ландшафта позволила нам выйти на следующий логический этап - управление изменениями. Сегодня техрадар — это уже не просто система наблюдения, но полноценный пункт управления вашим ИТ-ландшафтом, умеющий управлять миграциями технологий системно и автоматически. Подробности под катом

    habr.com/ru/articles/1000400/

    #мониторинг #разработка #управление_разработкой #аудит #миграции #проблемы_разработки_по #технологический_стек #техрадар #techradar #it_инфраструктура

  25. [Перевод] Мы научили ИИ писать настоящий код для Postgres (и выложили в open source)

    Когда ИИ за секунды генерирует «нормальную» схему Postgres, соблазн принять её как есть слишком велик. Проблема в том, что в этих схемах часто прячутся тихие минные поля: неудачные типы данных, странная индексация, путаница с идентификаторами, ловушки с временем и миграциями — всё то, что не ломает сборку сегодня, но превращается в боль через полгода в продакшене. В статье разберем, почему универсальные LLM регулярно промахиваются по нюансам именно Postgres, и как авторы пытаются закрыть эту дыру через pg-aiguide: набор «навыков» с лучшими практиками, версионный семантический поиск по официальной документации и интеграцию с код-агентами через MCP/плагин.

    habr.com/ru/companies/otus/art

    #Postgres #миграции #индексы #типы_данных #LLMагенты #best_practices #postgresql

  26. [Перевод] Мы научили ИИ писать настоящий код для Postgres (и выложили в open source)

    Когда ИИ за секунды генерирует «нормальную» схему Postgres, соблазн принять её как есть слишком велик. Проблема в том, что в этих схемах часто прячутся тихие минные поля: неудачные типы данных, странная индексация, путаница с идентификаторами, ловушки с временем и миграциями — всё то, что не ломает сборку сегодня, но превращается в боль через полгода в продакшене. В статье разберем, почему универсальные LLM регулярно промахиваются по нюансам именно Postgres, и как авторы пытаются закрыть эту дыру через pg-aiguide: набор «навыков» с лучшими практиками, версионный семантический поиск по официальной документации и интеграцию с код-агентами через MCP/плагин.

    habr.com/ru/companies/otus/art

    #Postgres #миграции #индексы #типы_данных #LLMагенты #best_practices #postgresql

  27. [Перевод] Мы научили ИИ писать настоящий код для Postgres (и выложили в open source)

    Когда ИИ за секунды генерирует «нормальную» схему Postgres, соблазн принять её как есть слишком велик. Проблема в том, что в этих схемах часто прячутся тихие минные поля: неудачные типы данных, странная индексация, путаница с идентификаторами, ловушки с временем и миграциями — всё то, что не ломает сборку сегодня, но превращается в боль через полгода в продакшене. В статье разберем, почему универсальные LLM регулярно промахиваются по нюансам именно Postgres, и как авторы пытаются закрыть эту дыру через pg-aiguide: набор «навыков» с лучшими практиками, версионный семантический поиск по официальной документации и интеграцию с код-агентами через MCP/плагин.

    habr.com/ru/companies/otus/art

    #Postgres #миграции #индексы #типы_данных #LLMагенты #best_practices #postgresql

  28. [Перевод] Мы научили ИИ писать настоящий код для Postgres (и выложили в open source)

    Когда ИИ за секунды генерирует «нормальную» схему Postgres, соблазн принять её как есть слишком велик. Проблема в том, что в этих схемах часто прячутся тихие минные поля: неудачные типы данных, странная индексация, путаница с идентификаторами, ловушки с временем и миграциями — всё то, что не ломает сборку сегодня, но превращается в боль через полгода в продакшене. В статье разберем, почему универсальные LLM регулярно промахиваются по нюансам именно Postgres, и как авторы пытаются закрыть эту дыру через pg-aiguide: набор «навыков» с лучшими практиками, версионный семантический поиск по официальной документации и интеграцию с код-агентами через MCP/плагин.

    habr.com/ru/companies/otus/art

    #Postgres #миграции #индексы #типы_данных #LLMагенты #best_practices #postgresql

  29. Обратная совместимость в Java-мире

    От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт. Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

    habr.com/ru/companies/axiomjdk

    #java #kotlin #обратная_совместимость #версионирование #аннотации #api #сигнатура #миграции #программирование #разработка

  30. Обратная совместимость в Java-мире

    От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт. Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

    habr.com/ru/companies/axiomjdk

    #java #kotlin #обратная_совместимость #версионирование #аннотации #api #сигнатура #миграции #программирование #разработка

  31. Обратная совместимость в Java-мире

    От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт. Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

    habr.com/ru/companies/axiomjdk

    #java #kotlin #обратная_совместимость #версионирование #аннотации #api #сигнатура #миграции #программирование #разработка

  32. Обратная совместимость в Java-мире

    От приложения мы хотим стабильности и предсказуемости. Мы хотим, чтобы приложение было одинаковым. Эта предсказуемость и обратная совместимость являются эдакой священной коровой, которая движет Java вперёд, возможно, движет назад и, возможно, по некоторым сведениям, из-за этого Java и умрёт. Однако 30 лет Java прожила. Давайте посмотрим, как это всё было и что было в начале.

    habr.com/ru/companies/axiomjdk

    #java #kotlin #обратная_совместимость #версионирование #аннотации #api #сигнатура #миграции #программирование #разработка

  33. Техдолг: как мы вдохнули жизнь в техрадар

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

    habr.com/ru/articles/940292/

    #техдолг #техрадар #миграции #новые_продукты

  34. Техдолг: как мы вдохнули жизнь в техрадар

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

    habr.com/ru/articles/940292/

    #техдолг #техрадар #миграции #новые_продукты

  35. Техдолг: как мы вдохнули жизнь в техрадар

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

    habr.com/ru/articles/940292/

    #техдолг #техрадар #миграции #новые_продукты

  36. Техдолг: как мы вдохнули жизнь в техрадар

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

    habr.com/ru/articles/940292/

    #техдолг #техрадар #миграции #новые_продукты

  37. Как мигрировать смарт-процессы в Битрикс и не сгореть

    Привет, меня зовут Евгений, я разработчик из Байовэр в компании НЛМК ИТ. Довелось мне тут столкнуться с разработкой системы опытно-промышленных испытаний на производстве, и если описать это коротко, то в целом большое количество людей разного уровня допуска должны совершить определенные действия в строгой последовательности (или местами асинхронно) для вынесения вердикта относительно качества продукта, и при этом управляться все это должно из одного места (как странно-то прозвучало:) Так как это достаточно инерционный процесс, который может занимать от нескольких месяцев до года, система, которая может рассылать ответственным за текущий шаг уведомления (а в случае простоя, и их руководству), позволяет ускорить прохождение большинства шагов бизнес-процессов (БП). Приведу пример – требуются лакокрасочные покрытия от стороннего поставщика для работы цеха, но перед заключением контракта на массовые поставки, нужно убедиться, что товар не разбавлен. Ну то есть надлежащего качества:) Заранее прошу прощения за качество юмора, вы привыкнете. Для этого закупается небольшая опытная партия, она проходит определенные испытания, и если результаты устраивают, процесс масштабируется на опытно-промышленную партию, побольше. Если же и в этом случае все испытания пройдены, то поставщик признается годным и материал одобряется к серийному применению. Собственно процесс испытаний мы и реализовали с помощью смарт-процессов. В данный момент у нас внедрено три категории материалов для испытаний (лакокрасочные материалы, огнеупорные материалы, наконечники медных фурм), они гораздо сложнее примера, который я хочу здесь описать, но его должно быть достаточно для масштабирования под нужды бизнеса.

    habr.com/ru/companies/nlmk/art

    #битрикс24 #смартпроцессы #миграции

  38. Как мигрировать смарт-процессы в Битрикс и не сгореть

    Привет, меня зовут Евгений, я разработчик из Байовэр в компании НЛМК ИТ. Довелось мне тут столкнуться с разработкой системы опытно-промышленных испытаний на производстве, и если описать это коротко, то в целом большое количество людей разного уровня допуска должны совершить определенные действия в строгой последовательности (или местами асинхронно) для вынесения вердикта относительно качества продукта, и при этом управляться все это должно из одного места (как странно-то прозвучало:) Так как это достаточно инерционный процесс, который может занимать от нескольких месяцев до года, система, которая может рассылать ответственным за текущий шаг уведомления (а в случае простоя, и их руководству), позволяет ускорить прохождение большинства шагов бизнес-процессов (БП). Приведу пример – требуются лакокрасочные покрытия от стороннего поставщика для работы цеха, но перед заключением контракта на массовые поставки, нужно убедиться, что товар не разбавлен. Ну то есть надлежащего качества:) Заранее прошу прощения за качество юмора, вы привыкнете. Для этого закупается небольшая опытная партия, она проходит определенные испытания, и если результаты устраивают, процесс масштабируется на опытно-промышленную партию, побольше. Если же и в этом случае все испытания пройдены, то поставщик признается годным и материал одобряется к серийному применению. Собственно процесс испытаний мы и реализовали с помощью смарт-процессов. В данный момент у нас внедрено три категории материалов для испытаний (лакокрасочные материалы, огнеупорные материалы, наконечники медных фурм), они гораздо сложнее примера, который я хочу здесь описать, но его должно быть достаточно для масштабирования под нужды бизнеса.

    habr.com/ru/companies/nlmk/art

    #битрикс24 #смартпроцессы #миграции

  39. Как мигрировать смарт-процессы в Битрикс и не сгореть

    Привет, меня зовут Евгений, я разработчик из Байовэр в компании НЛМК ИТ. Довелось мне тут столкнуться с разработкой системы опытно-промышленных испытаний на производстве, и если описать это коротко, то в целом большое количество людей разного уровня допуска должны совершить определенные действия в строгой последовательности (или местами асинхронно) для вынесения вердикта относительно качества продукта, и при этом управляться все это должно из одного места (как странно-то прозвучало:) Так как это достаточно инерционный процесс, который может занимать от нескольких месяцев до года, система, которая может рассылать ответственным за текущий шаг уведомления (а в случае простоя, и их руководству), позволяет ускорить прохождение большинства шагов бизнес-процессов (БП). Приведу пример – требуются лакокрасочные покрытия от стороннего поставщика для работы цеха, но перед заключением контракта на массовые поставки, нужно убедиться, что товар не разбавлен. Ну то есть надлежащего качества:) Заранее прошу прощения за качество юмора, вы привыкнете. Для этого закупается небольшая опытная партия, она проходит определенные испытания, и если результаты устраивают, процесс масштабируется на опытно-промышленную партию, побольше. Если же и в этом случае все испытания пройдены, то поставщик признается годным и материал одобряется к серийному применению. Собственно процесс испытаний мы и реализовали с помощью смарт-процессов. В данный момент у нас внедрено три категории материалов для испытаний (лакокрасочные материалы, огнеупорные материалы, наконечники медных фурм), они гораздо сложнее примера, который я хочу здесь описать, но его должно быть достаточно для масштабирования под нужды бизнеса.

    habr.com/ru/companies/nlmk/art

    #битрикс24 #смартпроцессы #миграции

  40. Как мигрировать смарт-процессы в Битрикс и не сгореть

    Привет, меня зовут Евгений, я разработчик из Байовэр в компании НЛМК ИТ. Довелось мне тут столкнуться с разработкой системы опытно-промышленных испытаний на производстве, и если описать это коротко, то в целом большое количество людей разного уровня допуска должны совершить определенные действия в строгой последовательности (или местами асинхронно) для вынесения вердикта относительно качества продукта, и при этом управляться все это должно из одного места (как странно-то прозвучало:) Так как это достаточно инерционный процесс, который может занимать от нескольких месяцев до года, система, которая может рассылать ответственным за текущий шаг уведомления (а в случае простоя, и их руководству), позволяет ускорить прохождение большинства шагов бизнес-процессов (БП). Приведу пример – требуются лакокрасочные покрытия от стороннего поставщика для работы цеха, но перед заключением контракта на массовые поставки, нужно убедиться, что товар не разбавлен. Ну то есть надлежащего качества:) Заранее прошу прощения за качество юмора, вы привыкнете. Для этого закупается небольшая опытная партия, она проходит определенные испытания, и если результаты устраивают, процесс масштабируется на опытно-промышленную партию, побольше. Если же и в этом случае все испытания пройдены, то поставщик признается годным и материал одобряется к серийному применению. Собственно процесс испытаний мы и реализовали с помощью смарт-процессов. В данный момент у нас внедрено три категории материалов для испытаний (лакокрасочные материалы, огнеупорные материалы, наконечники медных фурм), они гораздо сложнее примера, который я хочу здесь описать, но его должно быть достаточно для масштабирования под нужды бизнеса.

    habr.com/ru/companies/nlmk/art

    #битрикс24 #смартпроцессы #миграции

  41. Lite-версия мигратора Flyway для PostgreSQL на TypeScript

    Так как я активно использую возможности Flyway , такие как repeatable migrations и callbacks , и не хочу от них отказываться, а аналогов этих функций в других системах миграции нет, я решил написать собственный лёгкий клон Flyway на Node.js для PostgreSQL .

    habr.com/ru/articles/874028/

    #flyway #database #postgres #migrations #nodejs #миграции #постгрес #sql #консольная_утилита

  42. Lite-версия мигратора Flyway для PostgreSQL на TypeScript

    Так как я активно использую возможности Flyway , такие как repeatable migrations и callbacks , и не хочу от них отказываться, а аналогов этих функций в других системах миграции нет, я решил написать собственный лёгкий клон Flyway на Node.js для PostgreSQL .

    habr.com/ru/articles/874028/

    #flyway #database #postgres #migrations #nodejs #миграции #постгрес #sql #консольная_утилита

  43. Lite-версия мигратора Flyway для PostgreSQL на TypeScript

    Так как я активно использую возможности Flyway , такие как repeatable migrations и callbacks , и не хочу от них отказываться, а аналогов этих функций в других системах миграции нет, я решил написать собственный лёгкий клон Flyway на Node.js для PostgreSQL .

    habr.com/ru/articles/874028/

    #flyway #database #postgres #migrations #nodejs #миграции #постгрес #sql #консольная_утилита

  44. Lite-версия мигратора Flyway для PostgreSQL на TypeScript

    Так как я активно использую возможности Flyway , такие как repeatable migrations и callbacks , и не хочу от них отказываться, а аналогов этих функций в других системах миграции нет, я решил написать собственный лёгкий клон Flyway на Node.js для PostgreSQL .

    habr.com/ru/articles/874028/

    #flyway #database #postgres #migrations #nodejs #миграции #постгрес #sql #консольная_утилита

  45. Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

    Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge . Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку . Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут. Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

    habr.com/ru/companies/idaproje

    #python #django #идапроджект #базы_данных #программирование #миграции

  46. Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

    Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge . Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку . Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут. Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

    habr.com/ru/companies/idaproje

    #python #django #идапроджект #базы_данных #программирование #миграции

  47. Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

    Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge . Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку . Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут. Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

    habr.com/ru/companies/idaproje

    #python #django #идапроджект #базы_данных #программирование #миграции

  48. Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

    Привет! Меня зовут Макс, я backend-разработчик в компании ИдаПроджект и автор YouTube-канала PyLounge . Эта вторая часть большой статьи по Django-миграциям для начинающих. Если вы пропустили или потеряли первую часть — держите ссылку . Что здесь будет? Разберем фиктивное применение, миграции данных, «сухую проверку» и основные проблемы, которые возникают у начинающих. Также поделюсь полезными советами и подсвечу детали работы. Примеры из практики — обязательно будут. Дисклеймер (как и в первой части, чтобы не было недопониманий): все примеры специально упрощены, чтобы неокрепший ум выцепил концепции, а не детали реализации. Не бейте, или бейте там, где синяков не видно :)

    habr.com/ru/companies/idaproje

    #python #django #идапроджект #базы_данных #программирование #миграции

  49. Большой гайд по миграциям в Django: готовимся к миграциям и избегаем конфликтов

    Привет! Меня зовут Макс, я backend-разработчик в компании idaproject и автор Y ouTube-канала PyLounge . Я всегда хотел создавать контент, который пригодился бы мне самому в прошлом или настоящем. Эта большая статья — не исключение. Она для тех, кто только начинает изучение Django: жалею, что когда я начинал, мне не попался подобный материал. Надеюсь, он станет для вас хорошим подспорьем. Кому-то всё сказанное здесь покажется очевидным, но я всегда придерживался принципа — «то что очевидно мне или вам, не всегда очевидно другому». Что будет? Я расскажу, что такое миграции, зачем они нужны, как подготовиться к работе с ними и провести базовую работу на Django; отдельно подсвечу тему конфликтов и схлопываний, покажу, как содержать в чистоте историю миграций. Всё это с примерами на практике и иллюстрациями. Погнали!

    habr.com/ru/companies/idaproje

    #программирование #python #django #миграции #базы_данных

  50. Большой гайд по миграциям в Django: готовимся к миграциям и избегаем конфликтов

    Привет! Меня зовут Макс, я backend-разработчик в компании idaproject и автор Y ouTube-канала PyLounge . Я всегда хотел создавать контент, который пригодился бы мне самому в прошлом или настоящем. Эта большая статья — не исключение. Она для тех, кто только начинает изучение Django: жалею, что когда я начинал, мне не попался подобный материал. Надеюсь, он станет для вас хорошим подспорьем. Кому-то всё сказанное здесь покажется очевидным, но я всегда придерживался принципа — «то что очевидно мне или вам, не всегда очевидно другому». Что будет? Я расскажу, что такое миграции, зачем они нужны, как подготовиться к работе с ними и провести базовую работу на Django; отдельно подсвечу тему конфликтов и схлопываний, покажу, как содержать в чистоте историю миграций. Всё это с примерами на практике и иллюстрациями. Погнали!

    habr.com/ru/companies/idaproje

    #программирование #python #django #миграции #базы_данных