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 будет хранить файлы базы данных локально, поэтому данные не исчезнут даже после удаления контейнера.