---
title: "Вибір бекенду бази даних"
description: "Оберіть DB_BACKEND_MODE — PostgreSQL-primary, Firebase-full або Supabase Postgres"
locale: "uk"
---
# Вибір бекенду бази даних

  Продакшен-клони Ring використовують **`DB_BACKEND_MODE=k8s-postgres-fcm`** — PostgreSQL для даних, Firebase Admin **лише для FCM push**. Застарілий `DATABASE_MODE` прибрано.

  
- **[Режими бекенду](/docs/architecture/backend-modes-and-databases.md)** — Адаптери, FCM vs Firestore

  
- **[Міграції БД](/docs/getting-started/migrations.md)** — Порядок `schema.sql` + kingdom

  
- **[Швидкий старт](/docs/customization/quick-start.md)** — Перший клон з Postgres

```mermaid
flowchart TD
  Start([Новий клон Ring])
  Start --> Q1{Продакшен v1.6?}
  Q1 -->|Так| PG[Postgres-primary]
  Q1 -->|Лише Firestore| FB[firebase-full]
  PG --> Q2{Хто керує Postgres?}
  Q2 -->|Ви / k3s| K8S[k8s-postgres-fcm]
  Q2 -->|Supabase| SUP[supabase-fcm]
```

## Три режими

| `DB_BACKEND_MODE` | Дані додатку | Firestore для БД? | Push |
|-------------------|--------------|-------------------|------|
| **`k8s-postgres-fcm`** | PostgreSQL | **Ні** | FCM при налаштуванні |
| **`supabase-fcm`** | PostgreSQL на Supabase | **Ні** | Той самий FCM |
| **`firebase-full`** | Firestore | **Так** | Повний Firebase |

  Self-host, k3s, Ringdom, PaymentConductor, News Kingdom.

{`DB_BACKEND_MODE=k8s-postgres-fcm
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=your_password
DB_SSL=false`}

PostgreSQL **14+** — Docker, Homebrew або кластер.

{`export DATABASE_URL="postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
./scripts/run-migration.sh`}

[Міграції БД](/docs/getting-started/migrations.md).

FCM опційно: `NEXT_PUBLIC_FIREBASE_*` з `env.local.template`.

Проєкт Supabase + URL і service role key.

{`DB_BACKEND_MODE=supabase-fcm
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your_service_role_key`}

Застосуйте [міграції](/docs/getting-started/migrations.md) на з'єднанні Supabase Postgres.

> **Warning**
> Лише прототип — v1.6 очікує PostgreSQL.

Проєкт Firebase (Firestore, Auth).

{`DB_BACKEND_MODE=firebase-full
AUTH_FIREBASE_PROJECT_ID=your-project-id
AUTH_FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\\n..."
AUTH_FIREBASE_CLIENT_EMAIL=firebase-adminsdk@...`}

Плануйте перехід на `k8s-postgres-fcm` перед масштабом.

## Чого не використовувати

| Застаріле | Заміна |
|-----------|--------|
| `DATABASE_MODE=firebase_only` / `postgresql_only` | `DB_BACKEND_MODE` вище |
| `npm run db:migrate` | `./scripts/run-migration.sh` |

- [ ] `DB_BACKEND_MODE` валідний
- [ ] Міграції застосовані
- [ ] Резервні копії налаштовані
- [ ] `004_payment_transactions.sql` для платежів

`DatabaseService` backend-agnostic; дані мігруються свідомо. Валідація: `validateBackendModeConfig()` у `backend-mode-config.ts`.

  
- **[Середовище](/docs/deployment/environment.md)** — Секрети та локалі

  
- **[Платежі](/docs/customization/payment-integration.md)** — Потребує Postgres ledger
