Рубрика «postgresql»

TL;DR

Мигрировал продакшн базу с Supabase на VPS PostgreSQL прямо на работающем проекте — без остановки, без потери данных. Заодно перенёс авторизацию через strangler-подход и убрал Supabase из SSR read-path. Расскажу три инженерных решения с кодом.


Контекст

Строил маркетплейс недвижимости: карточки объектов, фильтры, личный кабинет, кастомная админка. Стартовал на Supabase — быстро, удобно, auth из коробки.

К середине проекта стало ясно:

  • RLS политики начинают мешать по мере усложнения логики

  • Стоимость при масштабировании некомфортная

  • Контроль над базой — нулевой

  • Читать полностью »

Проблема N+1 стара как мир. Инструментов много: Debugbar хорош локально, Telescope тяжеловат для продакшена. Мне хотелось решения, которое будет «стучать» в Slack или Telegram именно тогда, когда проблема случилась на проде, и при этом сразу показывать пальцем на виновную строку кода.

Так появился Eloquent Guard

Как это работает под капотом

Основная магия происходит через подписку на события базы данных в Laravel. В сервис-провайдере пакета мы слушаем QueryExecuted:

DB::listen(function (QueryExecuted $query) {
    // 1. Проверяем дубликаты (N+1) по хэшу SQL
    // 2. Замеряем время выполнения (Slow Query)
    // 3. Если порог превышен — запускаем репортеры
});

Читать полностью »

Привет! Я люблю слушать книги, но не все есть на Литрес и Storytel. Особенно это касается профессиональной литературы, фанфиков, статей и документов — всего того, что вряд ли когда-нибудь озвучат профессиональные дикторы.

Я поняла, что нейросетевые голоса уже достаточно хороши для комфортного прослушивания. И подумала: а что если сделать Telegram-бота, которому можно просто скинуть файл — а через пару минут слушать аудиокнигу в удобном плеере прямо в Telegram?

Так родился VoiceBooks — open-source сервис для озвучки книг, который работает полностью бесплатно.

Читать полностью »

Добро пожаловать. Снова.

Добро пожаловать. Снова.
Дисклеймер

Привет! Недавно мы с проектом (а по факту я в гордом одиночестве) переезжали с MySQL на PostgreSQL. Зачем? Проект — гео‑сервис для рыбаков: карта с точками, поиск рядом, фильтры по регионам, водоёмам и рыбам. MySQL стал тормозить на гео‑запросах, а PostGIS обещал скорость и порядок. Плюс мы всё равно переезжали на новый VDS – решили заодно сменить СУБД, пока данных не стало неприлично много.

Продом обкатано: читать будет полезно.

1. Исходные данные (чтобы понимали масштаб)

Проект не огромный, но и не игрушечный:

в 16:31, , рубрики: linux, postgresql, Windows 10, wsl 2

О чем эта статья

Эта статья для тех, кто столкнулся с необходимостью иметь компьютер под управлением системы из семейства Linux и при этом есть единственный компьютер под управлением Windows. Для таких случаев в Windows есть стандартное решение под названием WSL (Windows Subsystem for Linux). Конечно нельзя назвать данное решение полноценным. Но для тестирования проекта или обучения вполне может подойти. В моем случае решил использовать эту систему для обучения работы в Airflow. Что из этого вышло покажу дальше в статье. Забегая вперед скажу, что не все так однозначно ни с подсистемой Linux в Windows ни с дальнейшей работай проектов в ней.

Читать полностью »

Как мигрировать кусочек Яндекс Такси с PostgreSQL на YDB и перестать считать подключения к шардам - 1

Привет! Меня зовут Игорь Березняк, и мы с командой делаем Техплатформу Городских сервисов Яндекса. Я уже Читать полностью »

Всю профессиональную карьеру я так или иначе жил рядом с базами данных: начинал с Oracle, потом надолго перешёл на MS SQL Server и PostgreSQL (думаю, я здесь не один такой).

Обычно мы используем СУБД как инструмент: учитываем нюансы синтаксиса, оптимизатора, утилит и поведения движка — и решаем прикладные задачи. Но недавно, разворачивая очередной PostgreSQL‑кластер для продакшена, я поймал себя на мысли: не слишком ли много всего нужно поднять вокруг PostgreSQL, чтобы система работала одновременно безопасно и предсказуемо по производительности?

Читать полностью »

TL;DR: Я хотел просто сделать JSON с хадисами. В итоге написал свой парсер для PDF, боролся с Gradle и доменами в Maven Central, ломал генерацию картинок в Satori и оптимизировал Fuzzy Search с 5 секунд до 2.7 секунд с помощью AI. Это история о том, как пет-проект превратился в экосистемо на NestJS, Prisma и Redis.


Введение: "Всё должно было быть просто"

Идея казалась элементарной: сделать удобное API для хадисов — изречений Пророка Мухаммада (мир ему). Казалось бы, 2026 год на дворе, всё уже должно быть оцифровано, лежать на GitHub в красивом JSON, бери и пользуйся.

Я начал гуглить. Реальность ударила сразу:

Иногда инцидент начинается не с 5xx и не с красного графика

Он начинается с одной стойки

И с одного таймаута

09:12 - alert: db-replica-02 connection timeout

HAProxy зелёный
HTTP 5xx = 0.2%
p50 = 38–42ms

Минимальная схема

Минимальная схема

2 стойки
В каждом свой ToR
Primary и app в rack-1
Replica-01 в rack-1
Replica-02 в rack-2

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js