mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-02-26 14:21:25 +00:00
Remove the 7,791-line universal_migration.py and 16 incomplete individual Alembic migrations. Replace with a single initial schema migration using Base.metadata.create_all(checkfirst=True). Changes: - Add programmatic Alembic runner (app/database/migrations.py) with auto-stamp logic for existing databases transitioning from universal_migration - Extract ensure_default_web_api_token() to web_api_token_service.py - Extract sync_postgres_sequences() to database.py with SQL injection prevention via _quote_ident() - Add HMAC token hashing support with backward-compatible dual-hash fallback and automatic rehashing - Remove dead init_db() function and unused imports - Add Makefile targets: migrate, migration, migrate-stamp, migrate-history - Fix fileConfig() destroying structlog config (disable_existing_loggers) - Remove duplicate migrations/alembic/alembic.ini with credentials - Add script.py.mako template for future migration generation - Update startup flow: alembic upgrade → sync sequences → ensure token - Harden database.py: ParamSpec for retry decorator, safe URL logging, echo='debug' mode, execute_with_retry validation - Update documentation references 31 files changed, 302 insertions(+), 9,226 deletions(-)
66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
.PHONY: up
|
||
up: ## Поднять контейнеры (detached)
|
||
@echo "🚀 Поднимаем контейнеры (detached)..."
|
||
docker compose up -d --build
|
||
|
||
.PHONY: up-follow
|
||
up-follow: ## Поднять контейнеры с логами
|
||
@echo "📡 Поднимаем контейнеры (в консоли)..."
|
||
docker compose up --build
|
||
|
||
.PHONY: down
|
||
down: ## Остановить и удалить контейнеры
|
||
@echo "🛑 Останавливаем и удаляем контейнеры..."
|
||
docker compose down
|
||
|
||
.PHONY: reload
|
||
reload: ## Перезапустить контейнеры (detached)
|
||
@$(MAKE) down
|
||
@$(MAKE) up
|
||
|
||
.PHONY: reload-follow
|
||
reload-follow: ## Перезапустить контейнеры с логами
|
||
@$(MAKE) down
|
||
@$(MAKE) up-follow
|
||
|
||
.PHONY: test
|
||
test: ## Запустить тесты
|
||
uv run pytest -v
|
||
|
||
.PHONY: lint
|
||
lint: ## Проверить код (ruff check)
|
||
uv run ruff check .
|
||
|
||
.PHONY: format
|
||
format: ## Форматировать код (ruff format)
|
||
uv run ruff format .
|
||
|
||
.PHONY: fix
|
||
fix: ## Исправить код (ruff check --fix + format)
|
||
uv run ruff check . --fix
|
||
uv run ruff format .
|
||
|
||
.PHONY: migrate
|
||
migrate: ## Применить миграции (alembic upgrade head)
|
||
uv run alembic upgrade head
|
||
|
||
.PHONY: migration
|
||
migration: ## Создать миграцию (usage: make migration m="description")
|
||
uv run alembic revision --autogenerate -m "$(m)"
|
||
|
||
.PHONY: migrate-stamp
|
||
migrate-stamp: ## Пометить БД как актуальную (для существующих БД)
|
||
uv run alembic stamp head
|
||
|
||
.PHONY: migrate-history
|
||
migrate-history: ## Показать историю миграций
|
||
uv run alembic history --verbose
|
||
|
||
.PHONY: help
|
||
help: ## Показать список доступных команд
|
||
@echo ""
|
||
@echo "📘 Команды Makefile:"
|
||
@echo ""
|
||
@awk -F':.*## ' '/^[a-zA-Z0-9_-]+:.*## / {printf " \033[36m%-16s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||
@echo ""
|