Flask-SQLAlchemy не будет создавать таблицы и внешний ключ - PullRequest
0 голосов
/ 08 мая 2018

У меня есть модель, которая не создает таблицу в базе данных, как показано ниже

класс персона (дб. Модель):

__tablename__ = 'persons'

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

Класс 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 голосов
/ 08 мая 2018

Изменить это

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 = db.relationship('Pet', backref='person')

вы могли бы, например, сделать это

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