【问题标题】:how to perform an action when launching the app with FastAPI使用 FastAPI 启动应用程序时如何执行操作
【发布时间】:2023-02-24 02:47:13
【问题描述】:

如果用户表中有管理员,我想在启动应用程序时检查。如果它不存在,那么它应该被自动添加到 postgresql(sqlalchemy) 表中。是否有可能做到这一点?

事实证明,我需要在首次启动应用程序时初始化管理员帐户。

我将不胜感激任何帮助!

我有 User() 类的模型:

`class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    username = Column(String)
    password_hash = Column(String)
    role = Column(String, default='admin')
    created_at = Column(DateTime, default=func.now())
    created_by = Column(Integer, ForeignKey('users.id'), default=1)
    modified_at = Column(DateTime, default=func.now(), onupdate=func.now())
    modified_by = Column(Integer, ForeignKey('users.id'), default=1)`

我想使用 .env 文件中的用户名和密码,对应于 sql server 中的登录名和密码。

我正在尝试在 sqlalchemy 中使用核心事件,但我不明白这是否有帮助。

https://docs.sqlalchemy.org/en/14/core/events.html

【问题讨论】:

    标签: python postgresql sqlalchemy fastapi alembic


    【解决方案1】:

    我可以建议您为您的数据库使用迁移工具(如 alembic)。 然后您可以创建“Init”迁移,您可以在其中添加查询以创建管理员。 但是你需要像alembic upgrade head && flask run一样运行你的程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 2016-09-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多