🐛 The backend shall serve requests once the database reachable
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
from asyncio import sleep
|
||||
from logging import getLogger
|
||||
from typing import Annotated, AsyncIterator
|
||||
|
||||
from fastapi import Depends
|
||||
from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from sqlalchemy.exc import OperationalError, SQLAlchemyError
|
||||
from sqlalchemy.ext.asyncio import (
|
||||
async_sessionmaker,
|
||||
AsyncEngine,
|
||||
@@ -56,11 +57,20 @@ class Database:
|
||||
class_=AsyncSession,
|
||||
)
|
||||
|
||||
ret = False
|
||||
while not ret:
|
||||
try:
|
||||
async with self._async_engine.begin() as session:
|
||||
await session.execute(text("CREATE EXTENSION IF NOT EXISTS pg_trgm;"))
|
||||
await session.execute(
|
||||
text("CREATE EXTENSION IF NOT EXISTS pg_trgm;")
|
||||
)
|
||||
if clear_static_data:
|
||||
await session.run_sync(Base.metadata.drop_all)
|
||||
await session.run_sync(Base.metadata.create_all)
|
||||
ret = True
|
||||
except OperationalError as err:
|
||||
logger.error(err)
|
||||
await sleep(1)
|
||||
|
||||
return True
|
||||
|
||||
|
@@ -1,8 +1,9 @@
|
||||
app_name: carrramba-encore-rate
|
||||
clear_static_data: false
|
||||
|
||||
http:
|
||||
host: 0.0.0.0
|
||||
port: 4443
|
||||
port: 8080
|
||||
cert: ./config/cert.pem
|
||||
|
||||
db:
|
||||
@@ -12,3 +13,9 @@ db:
|
||||
driver: postgresql+psycopg
|
||||
user: cer
|
||||
password: cer_password
|
||||
|
||||
cache:
|
||||
enable: true
|
||||
|
||||
tracing:
|
||||
enable: false
|
23
backend/config.sample.yaml
Normal file
23
backend/config.sample.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
app_name: carrramba-encore-rate
|
||||
clear_static_data: false
|
||||
|
||||
http:
|
||||
host: 0.0.0.0
|
||||
port: 8080
|
||||
# cert: ./config/cert.pem
|
||||
|
||||
db:
|
||||
name: carrramba-encore-rate
|
||||
host: postgres
|
||||
port: 5432
|
||||
driver: postgresql+psycopg
|
||||
user: cer
|
||||
password: cer_password
|
||||
|
||||
cache:
|
||||
enable: true
|
||||
host: redis
|
||||
# TODO: Add user credentials
|
||||
|
||||
tracing:
|
||||
enable: false
|
Reference in New Issue
Block a user