56 lines
2.1 KiB
Bash
56 lines
2.1 KiB
Bash
#!/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
|