gpt4 book ai didi

flask - 如何使用声明性基础连接 Flask 中的迁移?

转载 作者:行者123 更新时间:2023-12-03 17:01:08 24 4
gpt4 key购买 nike

我在 flask_sqlalchemy 中使用声明性 Base。在我的 database.py 文件中,我有以下内容:

from sqlalchemy import create_engine
# from sqlalchemy.orm import scoped_session, sessionmaker
# from sqlalchemy.ext.declarative import declarative_base
# from flask_sqlalchemy import SQLAlchemy

# engine = create_engine("postgresql://postgres:@localhost/video_comparisons", convert_unicode=True)
# db_session = scoped_session(sessionmaker(autocommit=False,
# autoflush=False,
# bind=engine))
# Base = declarative_base()
# Base.query = db_session.query_property()

# Session = sessionmaker(bind = engine)

# db = SQLAlchemy()

# def init_db():
# # import all modules here that might define models so that
# # they will be registered properly on the metadata. Otherwise
# # you will have to import them first before calling init_db()
# import yourapplication.models
# Base.metadata.create_all(bind=engine)

现在,我的每个模型都从 database.py 导入 Base 对象。这避免了循环导入。

接下来,我正在尝试连接 Flask 迁移模块,它应该像这样工作:
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

如您所见,我需要通过 db进入 Migrate 构造函数。但是我没有 db 对象,因为我使用的是声明性 Base,而不是使用 db = SQLAlchemy(app) 创建它.

最好的方法是什么?在文档中,我看不到如何使用这种语法将 Migrate 对象连接到数据库。

谢谢,
路易丝

最佳答案

您必须从 database.py 导入 db 对象 :)

关于flask - 如何使用声明性基础连接 Flask 中的迁移?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com