Документация
База данных

PostgreSQL

Запуск PostgreSQL в Docker локально или в облаке

Для локальной разработки рекомендуется запускать PostgreSQL через Docker. Не нужен облачный аккаунт, данные полностью остаются локально, а запуск занимает минимум времени.

Требования

Убедитесь, что установлены Docker Desktop или OrbStack (рекомендуется для macOS).

Быстрый старт

Запуск PostgreSQL

Выполните следующую команду, чтобы запустить контейнер PostgreSQL:

docker run -d \
  --name postgres-dev \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=dev \
  -p 5432:5432 \
  postgres:17

Примечание

При первом запуске образ PostgreSQL будет загружен автоматически, это может занять несколько минут.

Настройка переменных окружения

Добавьте строку подключения в файл .env:

DATABASE_URL="postgresql://postgres:postgres@localhost:5432/dev"

Выполнение миграций

Выполните следующие команды, чтобы сгенерировать и применить миграции базы данных:

pnpm db:generate
pnpm db:migrate

Управление базой данных

Используйте Drizzle Studio, чтобы просматривать и редактировать данные:

pnpm db:studio

Часто используемые команды

# Остановить контейнер
docker stop postgres-dev

# Запустить уже существующий контейнер
docker start postgres-dev

# Удалить контейнер (данные будут потеряны)
docker rm -f postgres-dev

# Посмотреть журналы контейнера
docker logs postgres-dev

# Открыть командную строку psql
docker exec -it postgres-dev psql -U postgres -d dev

Сохранение данных

По умолчанию при удалении контейнера данные будут потеряны. Если нужно сохранять данные, подключите том:

docker run -d \
  --name postgres-dev \
  -e POSTGRES_USER=postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=dev \
  -p 5432:5432 \
  -v postgres-data:/var/lib/postgresql/data \
  postgres:17

Том postgres-data будет хранить файлы базы данных локально, поэтому данные не исчезнут даже после удаления контейнера.

Содержание