
Хочешь облачную базу данных — быстро, бесплатно и без администрирования сервера? Supabase закрывает эту задачу для большинства стартапов и пет-проектов. Но первое подключение скрывает одну ловушку, которая стоит людям часов отладки. Разберём всё по порядку.
Supabase — это облачная платформа поверх PostgreSQL с открытым исходным кодом. Бесплатный план включает:
Главное: тебе не нужно поднимать и обслуживать сервер. Supabase делает это за тебя.
После регистрации на supabase.com и создания проекта:
postgresql://postgres.[ref]:[password]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres[password] на пароль своего проекта (задаётся при создании проекта или в Settings → Database → Reset password)Строку можно использовать в любом ORM: Prisma, SQLAlchemy, Drizzle, Sequelize — синтаксис стандартный PostgreSQL.
Здесь спотыкается большинство новичков — и разработчики с опытом тоже.
Supabase предлагает три режима подключения:
Для обычных бэкендов, ботов и автоматизаций используй Session Pooler. Прямое подключение лимитировано по количеству коннектов и быстро упирается в потолок на бесплатном тарифе.
URI-формат строки подключения устроен так:
postgresql://user:password@host:port/databaseСимвол @ используется как разделитель между паролем и хостом. Если пароль содержит @, парсер URI воспримет его как конец пароля и начало хоста — строка сломается, и ты получишь непонятную ошибку подключения (или вообще молчание).
Как исправить:
Вариант 1 — сбросить пароль в Settings → Database и задать новый без спецсимволов (@, #, %, ?, /).
Вариант 2 — URL-энкодировать символ: @ → %40. Итого пароль my@pass в строке становится my%40pass:
postgresql://postgres.[ref]:my%[email protected]:5432/postgresВариант 3 — передавать параметры подключения отдельно (host, port, user, password, dbname), не через единую строку URI. Большинство библиотек поддерживают оба формата.
@, %, #, ? — или все спецсимволы закодированыПроверь соединение через psql или любой GUI (TablePlus, DBeaver):
psql "postgresql://postgres.[ref]:[password]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres"Если видишь postgres=# — всё работает.
Для Python (psycopg2 / SQLAlchemy) передавай параметры словарём, чтобы обойти проблему URI целиком:
import psycopg2
conn = psycopg2.connect(
host="aws-0-eu-central-1.pooler.supabase.com",
port=5432,
dbname="postgres",
user="postgres.[ref]",
password="твой_пароль",
sslmode="require"
)Supabase — один из лучших вариантов для старта с облачным PostgreSQL: щедрый бесплатный тариф, нулевое администрирование, стандартный SQL. Две вещи, которые нужно помнить с первого дня: Session Pooler вместо прямого подключения и никакого «@» в пароле без URL-энкодирования. Зная эти нюансы заранее, ты поднимешь рабочую базу за 10 минут, а не потратишь их на дебаг.
---
*Разбираем ИИ-инструменты и автоматизацию в ContentRun Club.*
Понравился материал?
В ContentRun Premium - 500+ гайдов, промптов и инструментов для маркетологов
Получить Premium →5 бесплатных AI-инструментов для бизнеса
Аудит бизнеса, готовая AI-воронка, 50 инструментов и генератор описания проекта - забирай бесплатно, без регистрации.
Открыть AI-набор →