fast api sqlalchemy 表未创建

问题描述 投票:0回答:2

我正在尝试运行我的第一个 Fast Api 应用程序,我尝试添加“用户”表,但 postgres 数据库中没有创建任何内容

users = Table(
    "users",
    metadata,
    Column("id", Integer, primary_key=True),
    Column("name", String(50)),
    Column("age", Integer),
    Column("birthdate", Date),
    Column("blood_type", String(3)),
    Column("blood_pressure", Integer),
    Column("created_at", DateTime, default=datetime.utcnow().strftime("%Y-%m-%d" "%H:%M:%S"), nullable=False),
)

我的代码有问题吗?

sqlalchemy fastapi
2个回答
1
投票

我不确定你的代码的开始或延续,但你打算做的事情与

SQLAlchemy
有关。根据文档,您所实现的似乎是正确的,但我认为您忘记了代码的某些部分。下面的实现来自文档,您的实现适合它,除非您可能忘记了
metadata.create_all()
部分(我试图猜测)?如果没有,如果您可以分享一些错误或通过更多细节展示您的实现的整体性,那就太好了。

engine = create_engine('sqlite:///:memory:')

metadata = MetaData()

user = Table('user', metadata,
    Column('user_id', Integer, primary_key=True),
    Column('user_name', String(16), nullable=False),
    Column('email_address', String(60), key='email'),
    Column('nickname', String(50), nullable=False)
)

user_prefs = Table('user_prefs', metadata,
    Column('pref_id', Integer, primary_key=True),
    Column('user_id', Integer, ForeignKey("user.user_id"), nullable=False),
    Column('pref_name', String(40), nullable=False),
    Column('pref_value', String(100))
)

metadata.create_all(engine)

0
投票

我遇到了同样的问题,这些代码行帮助了我:

from . import crud, models, schemas
from .database import SessionLocal, engine

models.Base.metadata.create_all(bind=engine)
© www.soinside.com 2019 - 2024. All rights reserved.