foxtime 9b4671a072 Первая фаза. Подготовка. 2 miesięcy temu
..
migrations 9b4671a072 Первая фаза. Подготовка. 2 miesięcy temu
README.md 9b4671a072 Первая фаза. Подготовка. 2 miesięcy temu
docker-compose.yml 9b4671a072 Первая фаза. Подготовка. 2 miesięcy temu
init.sql 9b4671a072 Первая фаза. Подготовка. 2 miesięcy temu

README.md

Настройка базы данных PhotoPlaces

Требования

  • Docker и Docker Compose
  • PostgreSQL 15+ с PostGIS 3.3+

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

  1. Убедитесь, что установлен Docker и Docker Compose
  2. Перейдите в директорию database/
  3. Запустите контейнер:

    docker-compose up -d
    
  4. База данных будет доступна по адресу:

    • Хост: localhost
    • Порт: 5432
    • База: photoplaces
    • Пользователь: photoplaces_user
    • Пароль: photoplaces_password

Ручная установка PostgreSQL с PostGIS

Для Windows:

  1. Скачайте и установите PostgreSQL с официального сайта
  2. Установите расширение PostGIS через Stack Builder
  3. Создайте базу данных:

    CREATE DATABASE photoplaces;
    
  4. Подключитесь к базе и выполните:

    CREATE EXTENSION postgis;
    
  5. Выполните SQL скрипт инициализации:

    psql -U postgres -d photoplaces -f init.sql
    

Для Linux (Ubuntu/Debian):

# Установка PostgreSQL и PostGIS
sudo apt update
sudo apt install postgresql postgresql-contrib postgis

# Создание базы данных
sudo -u postgres createdb photoplaces

# Включение PostGIS
sudo -u postgres psql -d photoplaces -c "CREATE EXTENSION postgis;"

# Выполнение скрипта инициализации
sudo -u postgres psql -d photoplaces -f init.sql

Структура базы данных

Основные таблицы:

  • users - Пользователи системы с ролями
  • places - Места для фотосессий с геоданными
  • place_images - Изображения мест
  • services - Услуги фотографов
  • bookings - Бронирования

Геоданные:

  • Используется тип GEOGRAPHY(Point, 4326) для хранения координат
  • Координаты хранятся в формате WGS84 (широта/долгота)
  • Для работы с геоданными используется расширение PostGIS

Миграции

Для управления миграциями базы данных будет использоваться:

  • node-pg-migrate или подобный инструмент
  • Миграции будут храниться в database/migrations/

Резервное копирование

# Создание бэкапа
pg_dump -U photoplaces_user -d photoplaces -f backup.sql

# Восстановление из бэкапа
psql -U photoplaces_user -d photoplaces -f backup.sql

Мониторинг и оптимизация

  • Используйте EXPLAIN ANALYZE для анализа запросов
  • Регулярно делайте VACUUM ANALYZE для обслуживания БД
  • Настройте мониторинг через pgAdmin или аналогичные инструменты

Безопасность

  • Никогда не используйте дефолтные пароли в продакшене
  • Настройте SSL соединение с базой данных
  • Ограничьте доступ к БД только с trusted источников
  • Регулярно обновляйте PostgreSQL и PostGIS