mirror of
https://github.com/grillazz/fastapi-sqlalchemy-asyncpg.git
synced 2025-08-26 16:40:40 +03:00
migrate to pydantic 2
This commit is contained in:
parent
d07fb04553
commit
d05f2cdb2e
1
.env
1
.env
@ -6,6 +6,7 @@ SQL_TEST_DB=testdb
|
||||
SQL_HOST=db
|
||||
SQL_USER=user
|
||||
SQL_PASS=secret
|
||||
SQL_URL=postgresql+asyncpg://${SQL_USER}:${SQL_PASS}@${SQL_HOST}/${SQL_DB}
|
||||
|
||||
ALGORITHM=HS256
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
||||
|
@ -36,7 +36,7 @@ async def update_nonsense(
|
||||
db_session: AsyncSession = Depends(get_db),
|
||||
):
|
||||
nonsense = await Nonsense.find(db_session, name)
|
||||
await nonsense.update(db_session, **payload.dict())
|
||||
await nonsense.update(db_session, **payload.model_dump())
|
||||
return nonsense
|
||||
|
||||
|
||||
@ -45,6 +45,6 @@ async def merge_nonsense(
|
||||
payload: NonsenseSchema,
|
||||
db_session: AsyncSession = Depends(get_db),
|
||||
):
|
||||
nonsense = Nonsense(**payload.dict())
|
||||
nonsense = Nonsense(**payload.model_dump())
|
||||
await nonsense.save_or_update(db_session)
|
||||
return nonsense
|
||||
|
@ -1,7 +1,6 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from pydantic import Required
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.database import get_db
|
||||
@ -14,7 +13,7 @@ router = APIRouter(prefix="/v1/shakespeare")
|
||||
"/",
|
||||
)
|
||||
async def find_paragraph(
|
||||
character: Annotated[str, Query(description="Character name")] = Required,
|
||||
character: Annotated[str, Query(description="Character name")],
|
||||
db_session: AsyncSession = Depends(get_db),
|
||||
):
|
||||
return await Paragraph.find(db_session=db_session, character=character)
|
||||
|
@ -54,5 +54,5 @@ async def update_stuff(
|
||||
db_session: AsyncSession = Depends(get_db),
|
||||
):
|
||||
stuff = await Stuff.find(db_session, name)
|
||||
await stuff.update(db_session, **payload.dict())
|
||||
await stuff.update(db_session, **payload.model_dump())
|
||||
return stuff
|
||||
|
@ -1,18 +1,12 @@
|
||||
import os
|
||||
from functools import lru_cache
|
||||
|
||||
from pydantic import BaseSettings, PostgresDsn
|
||||
from pydantic import PostgresDsn
|
||||
from pydantic_settings import BaseSettings
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
asyncpg_url: PostgresDsn = PostgresDsn.build(
|
||||
scheme="postgresql+asyncpg",
|
||||
user=os.getenv("SQL_USER"),
|
||||
password=os.getenv("POSTGRES_PASSWORD"),
|
||||
host=os.getenv("SQL_HOST"),
|
||||
port="5432",
|
||||
path=f"/{os.getenv('SQL_DB') or ''}",
|
||||
)
|
||||
asyncpg_url: PostgresDsn = os.getenv("SQL_URL")
|
||||
|
||||
|
||||
@lru_cache
|
||||
|
@ -10,7 +10,7 @@ global_settings = config.get_settings()
|
||||
logger = AppLogger.__call__().get_logger()
|
||||
|
||||
engine = create_async_engine(
|
||||
global_settings.asyncpg_url,
|
||||
global_settings.asyncpg_url.unicode_string(),
|
||||
future=True,
|
||||
echo=True,
|
||||
)
|
||||
|
@ -14,8 +14,8 @@ class NonsenseSchema(BaseModel):
|
||||
)
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
schema_extra = {
|
||||
from_attributes = True
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"name": "Name for Some Nonsense",
|
||||
"description": "Some Nonsense Description",
|
||||
@ -38,8 +38,8 @@ class NonsenseResponse(BaseModel):
|
||||
)
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
schema_extra = {
|
||||
from_attributes = True
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"config_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "Name for Some Nonsense",
|
||||
|
@ -14,8 +14,8 @@ class StuffSchema(BaseModel):
|
||||
)
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
schema_extra = {
|
||||
from_attributes = True
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"name": "Name for Some Stuff",
|
||||
"description": "Some Stuff Description",
|
||||
@ -38,8 +38,8 @@ class StuffResponse(BaseModel):
|
||||
)
|
||||
|
||||
class Config:
|
||||
orm_mode = True
|
||||
schema_extra = {
|
||||
from_attributes = True
|
||||
json_schema_extra = {
|
||||
"example": {
|
||||
"config_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
|
||||
"name": "Name for Some Stuff",
|
||||
|
Loading…
x
Reference in New Issue
Block a user