# Configure Gino as ORM
Now it is time to configure ORM for our project. I assume you have PosgtreSQL already installed. If yes then it will be easy to prepare user, database for our project. Connect to Postgres and run followings:
postgres=# create user ecommerce with encrypted password '12345'; CREATE ROLE postgres=# create database ecommerce; CREATE DATABASE postgres=# grant all privileges on database ecommerce to ecommerce; GRANT
I am not going to bother with weak Database password, but you should of course.
The next thing we need to update our
.env file. The final result should be:
PROJECT_NAME=backend BACKEND_CORS_ORIGINS=["http://localhost:8000", "https://localhost:8000", "http://localhost", "https://localhost"] POSTGRES_USER=ecommerce POSTGRES_PASSWORD=12345 POSTGRES_SERVER=localhost POSTGRES_DB=ecommerce
Do you remember the file with name
database.py which was created by our manage-fastapi (opens new window) tool?
It is in fact was based on SQLAlchemy, now remove all the lines there and add only these lines below:
from gino.ext.starlette import Gino from .core.config import settings db = Gino( dsn=settings.DATABASE_URI )
The last thing we need to have is to initialize our DB connection at the very start.
get_application() function in
The final version of this file will be:
from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from .core.config import settings from .database import db def get_application(): _app = FastAPI(title=settings.PROJECT_NAME) _app.add_middleware( CORSMiddleware, allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) db.init_app(_app) return _app app = get_application()
Finally to test our connection run the server:
❯ fastapi run INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process  using statreload INFO: Started server process  INFO: Waiting for application startup. INFO: Application startup complete.
As we have no error, it is clear we are in a good shape 😃 The next thing is to create the migraitons and the User model of course.
The code changes for this episode -> episode-2 (opens new window)