flask-sqlalchemy 3 在更新后给出“操作错误:没有这样的表”

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

我有一个带有多个 SQLALCHEMY_BINDS 的 Flask 应用程序。自升级到 3.0.3 后,每当我尝试查询 SQLALCHEMY_BINDS 中的任何数据库时,Flask-SQLAlchemy 都会出错,但主数据库工作正常。

错误:

sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: playlist

python 是 3.11.3,Flask 是 2.2.4,Flask-SQLAlchemy 是 3.0.3。所有相同的代码在尚未升级的主要代码环境中都能正常工作。

我一直在阅读 Flask-SQLAlchemy 3.0 的release notes,但我还没有找到任何暗示问题根源的东西。

我确实遇到过 this question 这似乎是相关的,除了我的 sqlite 连接是用绝对路径而不是相对路径定义的。我弄乱了路径只是为了看看我是否能到达任何地方,但该应用程序似乎很清楚工作路径与损坏路径。

F-SA 也知道数据库信息,只是出了点问题,我已经筋疲力尽了。有人有什么想法吗?

>>> db.metadatas.get('swinsian')
MetaData()
>>> db.metadatas.get('swinsian').__dict__
{'tables': FacadeDict({'track': Table('track', MetaData(), Column('track_id', Integer(), table=<track>, primary_key=True, nullable=False), Column('album', Text(), table=<track>), schema=None), 'playlist': Table('playlist', MetaData(), Column('playlist_id', Integer(), table=<playlist>, primary_key=True, nullable=False), Column('name', Text(), table=<playlist>), schema=None), 'playlistfolderplaylist': Table('playlistfolderplaylist', MetaData(), Column('playlistfolder_id', Integer(), table=<playlistfolderplaylist>, primary_key=True, nullable=False), Column('playlist_id', Integer(), ForeignKey('playlist.playlist_id'), table=<playlistfolderplaylist>), schema=None), 'topplaylist': Table('topplaylist', MetaData(), Column('topplaylist_id', Integer(), table=<topplaylist>, primary_key=True, nullable=False), Column('playlist_id', Integer(), ForeignKey('playlist.playlist_id'), table=<topplaylist>), schema=None), 'playlisttrack': Table('playlisttrack', MetaData(), Column('id', Integer(), table=<playlisttrack>, primary_key=True, nullable=False), Column('playlist_id', Integer(), ForeignKey('playlist.playlist_id'), table=<playlisttrack>), Column('track_id', Integer(), ForeignKey('track.track_id'), table=<playlisttrack>), Column('tindex', Integer(), table=<playlisttrack>), schema=None)}), 'schema': None, 'naming_convention': immutabledict({'ix': 'ix_%(column_0_label)s'}), 'info': {'bind_key': 'swinsian'}, '_schemas': set(), '_sequences': {}, '_fk_memos': defaultdict(<class 'list'>, {('playlist', 'playlist_id'): [ForeignKey('playlist.playlist_id'), ForeignKey('playlist.playlist_id'), ForeignKey('playlist.playlist_id')], ('track', 'track_id'): [ForeignKey('track.track_id')]})}
sqlite flask-sqlalchemy
© www.soinside.com 2019 - 2024. All rights reserved.