#!/bin/bash # apply_migrations.sh - Скрипт для ручного применения миграций echo "🔄 Ручное применение миграций базы данных..." # Загрузка переменных окружения из .env if [ -f .env ]; then echo "📝 Загрузка переменных окружения из .env..." export $(grep -v '^#' .env | xargs) else echo "⚠️ Файл .env не найден, используем значения по умолчанию" export DB_HOST="localhost" export DB_PORT="5432" export DB_NAME="telegram_tinder_bot" export DB_USERNAME="postgres" export DB_PASSWORD="postgres" fi # Проверка на существование директории миграций if [ ! -d "migrations" ] && [ ! -d "src/database/migrations" ]; then echo "❌ Не найдены директории с миграциями!" exit 1 fi # Вывод информации о подключении echo "🔍 Используемые параметры подключения:" echo "DB_HOST: $DB_HOST" echo "DB_PORT: $DB_PORT" echo "DB_NAME: $DB_NAME" echo "DB_USERNAME: $DB_USERNAME" echo "DB_PASSWORD: ********" # Проверка подключения к базе данных echo "🔍 Проверка подключения к базе данных..." if command -v pg_isready >/dev/null; then pg_isready -h $DB_HOST -p $DB_PORT -U $DB_USERNAME if [ $? -ne 0 ]; then echo "❌ Не удалось подключиться к базе данных!" exit 1 fi else echo "⚠️ Утилита pg_isready не найдена, пропускаем проверку" fi # Применение миграций echo "🔄 Применение миграций с помощью node-pg-migrate..." DATABASE_URL="postgres://$DB_USERNAME:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME" npx node-pg-migrate up # Проверка результата if [ $? -eq 0 ]; then echo "✅ Миграции успешно применены!" else echo "❌ Ошибка при применении миграций!" exit 1 fi