Python 声明的模型未应用于Flask中的现有数据库
我已经在我的models.py文件中创建了一个名为Python 声明的模型未应用于Flask中的现有数据库,python,flask,Python,Flask,我已经在我的models.py文件中创建了一个名为User的模型,我也在我的Flask应用程序中按比例添加了followers功能,但是当我在models.py文件中添加followers表时,在存储数据库的site.db文件中没有反映或应用该功能。我得到一个错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:followers 这是我的models.py文件 followers = db.Table('follo
User
的模型,我也在我的Flask应用程序中按比例添加了followers功能,但是当我在models.py文件中添加followers表时,在存储数据库的site.db文件中没有反映或应用该功能。我得到一个错误sqlalchemy.exc.OperationalError:(sqlite3.OperationalError)没有这样的表:followers
这是我的models.py文件
followers = db.Table('followers',
db.Column('follower_id', db.Integer, db.ForeignKey('user.id')),
db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))
)
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
image_file = db.Column(db.String(20), nullable=False, default='default.jpg')
password = db.Column(db.String(60), nullable=False)
posts = db.relationship('Post', backref='author', lazy=True)
followed = db.relationship(
'User', secondary=followers,
primaryjoin=(followers.c.follower_id == id),
secondaryjoin=(followers.c.followed_id == id),
backref=db.backref('followers', lazy='dynamic'), lazy='dynamic')
我也使用了命令flaskdb-migrate
和flaskdb-upgrade
,但它仍然抛出该错误
如何在数据库中应用这些更改?您应该首先为
追随者初始化/创建表。请阅读:
这样的系统需要一个模式来告诉他们如何存储这些信息。因此,在第一次启动服务器之前,创建该模式非常重要
下面是Flask使用模式SQL脚本创建数据库、表等的示例:
sqlite3 /tmp/flaskr.db < schema.sql
sqlite3/tmp/flaskr.db
您应该首先为追随者初始化/创建表。请阅读:
这样的系统需要一个模式来告诉他们如何存储这些信息。因此,在第一次启动服务器之前,创建该模式非常重要
下面是Flask使用模式SQL脚本创建数据库、表等的示例:
sqlite3 /tmp/flaskr.db < schema.sql
sqlite3/tmp/flaskr.db