Skip to content

Commit

Permalink
refact: db implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
WilliamSilveiraF committed Oct 28, 2023
1 parent 0aa54b4 commit f3bc392
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 38 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
FROM python:3.9-slim-buster

WORKDIR /app

Expand Down
2 changes: 1 addition & 1 deletion api/routes/audio.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from services import summary, sentiment_calculator, transcribe_audio
from models.audio_analysis import AudioAnalysis
from sqlalchemy.orm import Session
from db.utils import get_db
from db.services import get_db
import os

router = APIRouter()
Expand Down
5 changes: 0 additions & 5 deletions db/init_db.py

This file was deleted.

12 changes: 12 additions & 0 deletions db/services.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from db import session


def create_tables():
return session.Base.metadata.create_all(bind=session.engine)

def get_db():
db = session.SessionLocal()
try:
yield db
finally:
db.close()
15 changes: 7 additions & 8 deletions db/session.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from config import DATABASE_URL
import sqlalchemy as _sql
import sqlalchemy.ext.declarative as _declarative
import sqlalchemy.orm as _orm
import config

engine = _sql.create_engine(config.DATABASE_URL)

engine = create_engine(DATABASE_URL)
SessionLocal = _orm.sessionmaker(autocommit=False, autoflush=False, bind=engine)

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

Base = declarative_base()
Base = _declarative.declarative_base()
8 changes: 0 additions & 8 deletions db/utils.py

This file was deleted.

8 changes: 4 additions & 4 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ services:
ports:
- "8000:80"
environment:
- DATABASE_URL=mysql+mysqlconnector://william:Al12N%23assr@localhost/sentimentAnalysis
- DATABASE_URL=mysql+mysqlconnector://william:Al12N%23assr@sentimentAnalysis-mysql/sentimentAnalysis
depends_on:
- db

db:
image: mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=@As12345678
- MYSQL_ROOT_PASSWORD=Al12N%23assr
- MYSQL_DATABASE=sentimentAnalysis
- MYSQL_USER=william
- MYSQL_PASSWORD=Al12N#assr
- MYSQL_USER=root
- MYSQL_PASSWORD=Al12N%23assr
14 changes: 3 additions & 11 deletions main.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,12 @@
from fastapi import FastAPI, Depends
from fastapi import FastAPI
from api.routes import audio
from middlewares import cors_middleware
from typing import Annotated
from sqlalchemy.orm import Session
from db.init_db import init_db
from db.utils import get_db
import db

db.services.create_tables()

app = FastAPI()

@app.on_event("startup")
async def startup_event():
init_db()

cors_middleware.setup_cors(app)

db_dependency = Annotated[Session, Depends(get_db)]

app.include_router(audio.router)
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ packaging==23.2
Pillow==10.0.1
proto-plus==1.22.3
protobuf==4.21.12
psycopg2-binary==2.9.9
pyasn1==0.5.0
pyasn1-modules==0.3.0
pydantic==2.4.2
Expand Down

0 comments on commit f3bc392

Please sign in to comment.