sqlmodel 사용시 

SQLModel.metadata.create_all(engine) 호출시 db에 테이블생성이 되야하는데 안될때 

SQLModel.metadata.create_all 코드가 있는 곳에 내가 생성하고자 하는 models class들을 import 해야한다!! ★

ex)

from models 부분이 중요하다 

from sqlmodel import SQLModel, create_engine, Session
from models import Team, Hero, HeroTeamLink

mariadb = "mysql+pymysql"
postgresql = "postgresql+psycopg2"

engine = create_engine('{db}://{username}:{password}@{host}:{port}/{db_name}'.format(
    db=postgresql,
    username='id',
    password='pw',
    host='localhost',
    port='1233',
    db_name='team'
), echo=False)  # echo= sql log

def create_db_and_tables():
    SQLModel.metadata.create_all(engine)

혹시 그래도 안된다면 

 

직접만든 model 안에 __tablename__도 입력하여 시도해보길 바란다 

 

이걸로 하루날림 

+

가끔 특정 타이블만 안만들어진다면 만들어진 클래스 똑같이 복사해서 이름바꾸면 된다. 이게무슨 ㅡㅡ

 

반응형

'python > fastapi' 카테고리의 다른 글

nginx ELB-HealthChecker/2.0 log 없애기  (0) 2023.03.17
jwt access refresh token에 대한 정의  (0) 2022.09.07
[Errno 48] Address already in use  (0) 2022.08.29

+ Recent posts