psql postgres
CREATE DATABASE ; CREATE USER WITH PASSWORD ''; GRANT ALL PRIVILEGES ON DATABASE TO postgres;
CREATE DATABASE analytics_api; CREATE USER postgres WITH PASSWORD 'postgres'; GRANT ALL PRIVILEGES ON DATABASE analytics_api TO postgres;
\q
DATABASE_URL=postgresql+asyncpg://:@localhost:5432/
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/analytics_api
postgresql+asyncpg://postgres:postgres@localhost:5432/analytics_api │ │ │ │ │ │ │ │ │ │ │ └─ Database name │ │ │ │ └────── Port │ │ │ └──────────────── Host │ │ └───────────────────────── Password │ └────────────────────────────────── Username └─────────────────────────────────────────────────────── Driver
DATABASE_URL=postgresql+asyncpg://admin:SecurePass123@localhost:5432/analytics_api
^^^^^ ^^^^^^^^^^^^^
USER PASSWORD
DATABASE_URL=postgresql+asyncpg://your_username@localhost:5432/analytics_api
^^^^^^^^^^^^^
(no password needed)
DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/analytics_api
^^^^^^^^ ^^^^^^^^ ^^
USER PASSWORD HOST changes to "db"!
psql analytics_api
psql postgres
brew list | grep postgresql
brew services start postgresql@16
brew services start postgresql
brew services list | grep postgresql
ALTER USER postgres WITH SUPERUSER; GRANT ALL PRIVILEGES ON DATABASE analytics_api TO postgres;
psql analytics_api
\dt
\d \d events
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
docker build -t <image_name_of_your_choosing>:<version_of_your_choosing> . # from root dont forget the '.'
docker build -t analytics-api:latest . docker images | grep <image_youre_looking_for>
docker compose up -d --build (start in detached mode)
docker-compose down
docker compose logs -f
docker compose logs -f api
docker compose logs -f db
docker compose ps
docker compose down
docker compose down -v
docker system prune -f
Check for hidden characters or spaces
cat -A .env.docker
docker-compose exec <container_name_from_service_docker-compose_yaml, service_name> <path/to/file.py>
docker-compose exec api python app/scripts/load_test_data.py
docker-compose exec db psql -U appuser -d analytics_api -c "SELECT COUNT(*) FROM events;"
docker network ls
docker inspect <any_network_from_list_above>
docker inspect analytics_api_analytics_network
docker inspect <any_network_from_list_above> | grep IPAddress
docker inspect analytics_api | grep IP
docker compose exec -u root <service_name> bash eg : docker-compose exec -u root api bash
ping -c 3
curl -v telnet://<service_name>:<service_port> eg: curl -v telnet://db:5432
docker compose down
docker rmi analytics_api_api
docker compose down --rmi all
docker compose build --no-cache
docker compose up -d
sleep 10
docker compose exec -u root api bash
nslookup db # Should work now!
ping -c 3 db # Should work now!
docker network ls
docker network inspect analytics_api_analytics_network
docker network inspect analytics_api_analytics_network | grep Name
docker network create my_network
docker network connect my_network analytics_api
docker network disconnect my_network analytics_api
docker inspect analytics_api | grep IPAddress
docker network inspect analytics_api_analytics_network | grep IPv4Address