- Install dependencies (Source: poetry)
poetry install --with dev
- Create
.env
file
DATABASE_URI="postgresql+asyncpg://develop:develop@localhost/develop"
DEBUG=true
SECRET_KEY="someSecret"
- Run docker db
docker-compose up -d
- Run project
uvicorn main:app --reload
or
python main.py
- Init alembic
alembic init -t async alembic
- check if Alembic is working well
alembic current
- Generate migrations
alembic revision --autogenerate -m "Create user"
- Migrate
alembic upgrade head
- Get users
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from db.models import User
async def get_users(session: AsyncSession):
result = await session.execute(select(User))
return result.scalars().all()
- Build image
docker build -t fastapi-project -f docker/Dockerfile .
docker compose build
- Run container
docker run --rm -it -p 8080:8080 fastapi-project
docker compose up -d
- Open shell
docker run --rm --entrypoint="" -it fastapi-project sh
docker compose exec app sh