geo detection
This commit is contained in:
53
Makefile
53
Makefile
@@ -21,9 +21,20 @@ help:
|
||||
|
||||
install:
|
||||
@echo "Установка зависимостей..."
|
||||
@if ! command -v docker &> /dev/null || ! command -v docker-compose &> /dev/null; then \
|
||||
@if ! command -v docker &> /dev/null; then \
|
||||
echo "Установка Docker..."; \
|
||||
sudo apt update && sudo apt install -y docker.io docker-compose; \
|
||||
echo "Удаление конфликтующих пакетов..."; \
|
||||
sudo apt remove -y docker.io containerd runc 2>/dev/null || true; \
|
||||
sudo apt update; \
|
||||
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common; \
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg; \
|
||||
echo "deb [arch=$$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null; \
|
||||
sudo apt update; \
|
||||
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin; \
|
||||
sudo systemctl start docker; \
|
||||
sudo systemctl enable docker; \
|
||||
sudo usermod -aG docker $$USER; \
|
||||
echo "Docker установлен. Перелогиньтесь для применения группы docker."; \
|
||||
fi
|
||||
@if [ ! -f .env ]; then \
|
||||
echo "Создание .env файла..."; \
|
||||
@@ -37,6 +48,14 @@ update:
|
||||
@git fetch --all
|
||||
@git pull origin main || git pull origin master || echo "Не удалось обновить код"
|
||||
@if [ -f package.json ]; then npm ci || npm install; fi
|
||||
@echo "Пересборка контейнеров..."
|
||||
@docker compose down || docker-compose down || true
|
||||
@docker compose build || docker-compose build
|
||||
@docker compose up -d || docker-compose up -d
|
||||
@echo "Применение миграций к базе данных..."
|
||||
@sleep 5
|
||||
@make migrate
|
||||
@echo "✅ Обновление завершено! Бот перезапущен с новой версией."
|
||||
|
||||
run:
|
||||
@echo "Запуск бота..."
|
||||
@@ -47,18 +66,26 @@ run:
|
||||
@echo "Бот запущен! Для просмотра логов: docker-compose logs -f"
|
||||
|
||||
migrate:
|
||||
@echo "Применение миграций..."
|
||||
@if [ -d migrations ]; then \
|
||||
mkdir -p temp_migrations; \
|
||||
find migrations -name "*.js" -exec cp {} temp_migrations/ \; 2>/dev/null || true; \
|
||||
DATABASE_URL=postgres://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} \
|
||||
npx node-pg-migrate up --migrations-dir=migrations || true; \
|
||||
fi
|
||||
@if [ -d sql ]; then \
|
||||
for sql_file in sql/*.sql; do \
|
||||
[ -f "$${sql_file}" ] && docker-compose exec -T db psql -U ${DB_USERNAME} -d ${DB_NAME} -f "/app/$${sql_file}" || true; \
|
||||
done; \
|
||||
@echo "Применение миграций к базе данных..."
|
||||
@if [ ! -f .env ]; then \
|
||||
echo "❌ Файл .env не найден! Создайте его перед применением миграций."; \
|
||||
exit 1; \
|
||||
fi
|
||||
@. ./.env && export $$(cat .env | grep -v '^#' | xargs) && \
|
||||
echo "Подключение к БД: $$DB_HOST:$$DB_PORT/$$DB_NAME ($$DB_USERNAME)" && \
|
||||
echo "Создание расширения uuid-ossp..." && \
|
||||
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
|
||||
-c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" 2>/dev/null || true && \
|
||||
echo "Применение consolidated.sql..." && \
|
||||
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
|
||||
-f sql/consolidated.sql 2>&1 | grep -E "(ERROR|CREATE|ALTER)" || true && \
|
||||
echo "Применение дополнительных миграций..." && \
|
||||
for sql_file in sql/add_*.sql; do \
|
||||
[ -f "$$sql_file" ] && echo " - Применение $$(basename $$sql_file)..." && \
|
||||
PGPASSWORD="$$DB_PASSWORD" psql -h $$DB_HOST -p $$DB_PORT -U $$DB_USERNAME -d $$DB_NAME \
|
||||
-f "$$sql_file" 2>&1 | grep -v "NOTICE" || true; \
|
||||
done && \
|
||||
echo "✅ Миграции применены успешно!"
|
||||
|
||||
fix-docker:
|
||||
@echo "Исправление Docker конфигурации..."
|
||||
|
||||
Reference in New Issue
Block a user