784616b349
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 ""
|