SQLAlchemy数据库在迁移db.relationship时出现错误。

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

当我在使用 db.relation 时尝试 "flask db init "或 "flask run "时,我一直收到以下错误。

TypeError: relationship() got an unexpected keyword argument 'query_class'

如果我注释掉db.relation这一行,就能正常工作。

我试图通过使用下面他们的部分文档代码来实现这一点。

import os
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)

app.config['SECRET_KEY'] = 'mysecretkey'

basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///'+os.path.join(basedir,'data.sqlite')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)
Migrate(app,db)

class Person(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    addresses = db.relationship('Address', backref='person', lazy=True)

class Address(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(120), nullable=False)
    person_id = db.Column(db.Integer, db.ForeignKey('person.id'),
        nullable=False)

环境: - Flask 1.1.2 - Flask-Migrate 2.5.3 - Flask-SQLAlchemy 2.4.3 - SQLAlchemy 1.3.17 - PyCharm 2020.1.1 - Windows 7。

python flask sqlalchemy flask-migrate
1个回答
0
投票

我设法通过卸载Flask、Flask-Migrate和SQLAlchemy然后重新安装它们来解决这个问题。

#Uninstall
pip uninstall Flask
pip uninstall Flask-Migrate
pip uninstall SQLAlchemy

#Install
pip install Flask
pip install Flask-Migrate
pip install SQLAlchemy
© www.soinside.com 2019 - 2024. All rights reserved.