• 26-Dec-2022
Lightrun Team
Author Lightrun Team
Share
This is a glossary of all the common issues in Tiangolo Full Stack FastAPI and PostgreSQL

Troubleshooting Common Issues in Tiangolo Full Stack FastAPI and PostgreSQL

Lightrun Team
Lightrun Team
26-Dec-2022

Project Description

Tiangolo Full Stack FastAPI and PostgreSQL is a web development stack that combines the FastAPI web framework with the PostgreSQL database system.

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints. It is designed to be easy to use and learn, and it is built on top of the popular Python web framework called Starlette. FastAPI is particularly well-suited for building APIs that serve machine learning models and other data-intensive applications.

PostgreSQL is a powerful, open-source object-relational database system that is widely used in web applications. It is known for its stability, robustness, and support for a wide range of data types and features.

Troubleshooting Tiangolo Full Stack FastAPI and PostgreSQL with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.

  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

The following issues are the most popular issues regarding this project:

depends_on is deprecated in docker-compose v3

To solve the problem of depends_on being deprecated in docker-compose v3, you can update your docker-compose.yml file to use the new depends_on option in the service configuration. For example, if you have a web service that depends on a db service, you can update your docker-compose.yml file as follows:

version: "3"
services:
  web:
    depends_on:
      - db
  db:
    image: postgres:latest

This will ensure that the db service is started before the web service, and that the web service does not start until the db service is ready.

It’s also worth noting that the depends_on option only specifies the order in which the containers are started. It does not guarantee that a dependent service is fully initialized and ready to accept connections before the depending service is started. If you need to ensure that a service is fully initialized before another service is started, you may want to consider using a tool like wait-for-it or dockerize to delay the start of the depending service until the dependent service is fully initialized.

CRUD Sqlalchemy ORM, Pydantic, and query on multiple tables (like join table)

Before debugging the underlying FastAPI application, it is essential to ensure that the SQLAlchemy query returns accurate data. To get a better understanding of how to use this tool effectively and correctly, consult an appropriate tutorial such as one provided by https://docs.sqlalchemy.org/en/13/orm/tutorial.html After obtaining results from your query, you will likely need to convert them into a series of dictionaries or other compatible shapes so they can be plugged into a Pydantic model for error-free operation afterward – but only after having verified that all data acquired thus far corresponds with expectations

More issues from Tiangolo repos

Troubleshooting fastapi | Troubleshooting uvicorn-gunicorn-fastapi-docker | Troubleshooting flask-uwsgi-nginx-docker

Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications. It’s a registration form away.

Get Lightrun

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.