forked from enviPath/enviPy
Since sqlite is not a suitable backend due to array field switch to an easy to setup postgres backend relying on docker. From cloning to run is now just two commands. Signed-off-by: Tobias O <tobias.olenyi@envipath.com>
55 lines
1.7 KiB
Makefile
55 lines
1.7 KiB
Makefile
.PHONY: help setup db-up db-down migrate bootstrap dev shell clean
|
|
|
|
help: ## Show this help message
|
|
@echo 'Usage: make [target]'
|
|
@echo ''
|
|
@echo 'Available targets:'
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
|
|
|
|
setup: db-up migrate bootstrap ## Complete setup: start database, run migrations, and bootstrap data
|
|
@echo "✓ Setup complete! You do not need to run this again; Run 'make dev' to start the development server."
|
|
|
|
db-up: ## Start PostgreSQL database using Docker Compose
|
|
@echo "Starting PostgreSQL database..."
|
|
@docker compose up -d -f docker-compose.dev.yml
|
|
@echo "Waiting for database to be ready..."
|
|
@sleep 3
|
|
@echo "✓ Database is running"
|
|
|
|
db-down: ## Stop PostgreSQL database
|
|
@echo "Stopping PostgreSQL database..."
|
|
@docker compose down
|
|
|
|
migrate: ## Run database migrations
|
|
@echo "Running migrations..."
|
|
@uv run python manage.py migrate
|
|
@echo "✓ Migrations complete"
|
|
|
|
bootstrap: ## Bootstrap initial data (anonymous user, packages, models)
|
|
@echo "Bootstrapping initial data..."
|
|
@echo "This will take a bit ⏱️. Get yourself some coffe..."
|
|
@uv run python manage.py bootstrap
|
|
@echo "✓ Bootstrap complete"
|
|
@echo ""
|
|
@echo "Default admin credentials:"
|
|
@echo " Username: admin"
|
|
@echo " Email: admin@envipath.com"
|
|
@echo " Password: SuperSafe"
|
|
|
|
dev: db-up
|
|
@uv run python manage.py runserver
|
|
|
|
shell: ## Open Django shell
|
|
@uv run python manage.py shell
|
|
|
|
clean: ## Remove database and volumes (WARNING: destroys all data)
|
|
@echo "WARNING: This will delete all database data!"
|
|
@read -p "Are you sure? [y/N] " -n 1 -r; \
|
|
echo; \
|
|
if [[ $$REPLY =~ ^[Yy]$$ ]]; then \
|
|
docker compose down -v; \
|
|
echo "✓ Cleaned"; \
|
|
else \
|
|
echo "Cancelled"; \
|
|
fi
|