Flask-SQLAlchemy不会创建表和外键

时间:2018-05-08 13:04:15

标签: flask flask-sqlalchemy

我有一个不会在数据库中创建表的模型,如下所示

class Person(db.Model):

__tablename__ = 'persons'

id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20))
pets = db.relationship('Pet', backref='person')

class Pet(db.Model):

__tablename__ = 'pets'

id = db.Column(db.Integer, primary_key=True)
name=db.Column(db.String(20))
owner_id = db.Column(db.Integer, db.ForeignKey('person.id'),nullable=False)

问题可能是因为使用命令

后类名和表名不匹配
db.create_all()

抛出错误??

1 个答案:

答案 0 :(得分:0)

更改此

owner_id = db.Column(db.Integer, db.ForeignKey('person.id'),nullable=False)

owner_id = db.Column(db.Integer, db.ForeignKey('persons.id'),nullable=False)

因为你的桌子是人

并且给这个关系一个不同的名字,因为你已经有一个名为pets

的表
pets = db.relationship('Pet', backref='person')

你可以这样做

persons_pets = db.relationship('Pet', backref='person')