Files
tg_bot_language/Makefile
mamonov.ep 1d29055f69 fix: исправлен docker-bot-rebuild в Makefile
- Добавлен флаг -f для принудительного удаления контейнера
- docker-bot-rebuild теперь пересобирает образ (--build)
- docker-bot-rebuild-full удаляет старый образ перед сборкой

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-10 11:13:10 +03:00

155 lines
5.4 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.PHONY: help venv install run clean \
docker-up docker-down docker-logs docker-rebuild docker-restart \
docker-bot-restart docker-bot-rebuild docker-bot-build docker-bot-rebuild-full \
migrate migrate-down migrate-current migrate-revision \
local-migrate local-migrate-down local-migrate-current \
docker-db docker-db-stop
help:
@echo "Доступные команды:"
@echo " make venv - Создать виртуальное окружение"
@echo " make install - Установить зависимости"
@echo " make run - Запустить бота локально"
@echo " make clean - Удалить venv и кэш"
@echo ""
@echo "Docker команды:"
@echo " make docker-up - Запустить всё (бот + БД)"
@echo " make docker-down - Остановить все контейнеры"
@echo " make docker-logs - Показать логи Docker"
@echo " make docker-rebuild - Пересобрать контейнеры"
@echo " make docker-restart - Перезапустить все контейнеры"
@echo " make docker-bot-restart - Перезапустить только бот"
@echo " make docker-bot-build - Собрать образ бота"
@echo " make docker-bot-rebuild - Пересобрать и поднять только бот"
@echo ""
@echo "Миграции Alembic (Docker):"
@echo " make migrate - Применить все миграции (upgrade head)"
@echo " make migrate-down - Откатить одну миграцию (downgrade -1)"
@echo " make migrate-current - Показать текущую ревизию"
@echo " make migrate-revision m=\"msg\" - Создать пустую ревизию с сообщением"
@echo ""
@echo "Миграции Alembic (локально):"
@echo " make local-migrate - Применить все миграции локально"
@echo " make local-migrate-down - Откатить одну миграцию локально"
@echo " make local-migrate-current - Показать текущую ревизию локально"
@echo ""
@echo "База данных:"
@echo " make docker-db - Запустить только БД (для локальной разработки)"
@echo " make docker-db-stop - Остановить БД"
venv:
python3 -m venv .venv
@echo "Виртуальное окружение создано!"
@echo "Активируйте его: source .venv/bin/activate"
install: venv
.venv/bin/pip install --upgrade pip
.venv/bin/pip install -r requirements.txt
@echo "Зависимости установлены!"
run:
@if [ ! -f .env ]; then \
echo "Ошибка: файл .env не найден!"; \
echo "Создайте его: cp .env.example .env"; \
exit 1; \
fi
.venv/bin/python main.py
clean:
rm -rf .venv
find . -type d -name "__pycache__" -exec rm -rf {} +
find . -type f -name "*.pyc" -delete
@echo "Очистка завершена!"
docker-up:
@if [ ! -f .env ]; then \
echo "Ошибка: файл .env не найден!"; \
echo "Создайте его: cp .env.example .env"; \
exit 1; \
fi
docker-compose up -d
docker-down:
docker-compose down
docker-logs:
docker-compose logs -f bot
docker-rebuild:
docker-compose up -d --build
docker-restart:
docker-compose restart
docker-bot-restart:
docker-compose restart bot
docker-bot-build:
docker-compose build bot
docker-bot-rebuild:
docker-compose stop bot
docker-compose rm -f bot
docker-compose up -d --build bot
docker-bot-rebuild-full:
docker-compose stop bot
docker-compose rm -f bot
docker rmi -f $$(docker images -q language_bot-bot 2>/dev/null) 2>/dev/null || true
docker-compose build --no-cache bot
docker-compose up -d bot
# ------- Alembic migrations (в контейнере бота) -------
migrate:
docker-compose exec bot alembic upgrade head
migrate-down:
docker-compose exec bot alembic downgrade -1
migrate-current:
docker-compose exec bot alembic current
migrate-revision:
@if [ -z "$(m)" ]; then \
echo "Укажите сообщение: make migrate-revision m=\"message\""; \
exit 1; \
fi
docker-compose exec bot alembic revision -m "$(m)"
# ------- Локальные миграции Alembic (без Docker) -------
local-migrate:
.venv/bin/alembic upgrade head
local-migrate-down:
.venv/bin/alembic downgrade -1
local-migrate-current:
.venv/bin/alembic current
docker-db:
@echo "🐘 Запуск PostgreSQL для локальной разработки..."
@if [ ! -f .env ]; then \
cp .env.example .env; \
echo "⚠️ Создан .env файл из .env.example"; \
fi
docker-compose -f docker-compose.dev.yml up -d
@echo "✅ База данных запущена на localhost:15433"
@echo ""
@echo "Параметры подключения:"
@echo " Host: localhost"
@echo " Port: 15433"
@echo " User: botuser"
@echo " Password: botpassword"
@echo " Database: language_bot"
@echo ""
@echo "DATABASE_URL для .env:"
@echo " DATABASE_URL=postgresql+asyncpg://botuser:botpassword@localhost:15433/language_bot"
@echo ""
@echo "Подключиться: docker-compose -f docker-compose.dev.yml exec db psql -U botuser -d language_bot"
docker-db-stop:
@echo "Остановка базы данных..."
docker-compose -f docker-compose.dev.yml stop
docker-compose -f docker-compose.dev.yml down