Ошибка при создании foreign key в существующей таблице "Failed to open the referenced table 'table_name'" sqalchemy MySQL

Господа, ломаю голову уже третий день. У меня приложение Flask. Есть готовая модель таблицы, которая уже наполнена данными и используется:

class Schools(db.Model):
    __tablename__ = 'schools'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False, unique=True)

Я пытаюсь добавить новую модель и связать с таблицей Schools с помощью foreign key Теперь мои модели выглядят так:

class Schools(db.Model):
    __tablename__ = 'schools'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(100), nullable=False, unique=True)
    stud = db.relationship('Students', backref='schools', lazy='dynamic')

class Students(db.Model):
    __tablename__ = 'students'
    id = db.Column(db.Integer, primary_key=True)
    school_id = db.Column(db.Integer, db.ForeignKey('schools.id'))

С помощью Flask-Migrate пытаюсь сделать миграцию и получаю ошибку:

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1824, "Failed to open the referenced table 'schools'")

Подскажите, в чем причина?


Ответы (1 шт):

Автор решения: lezhni

Если таблица точно существует, то есть вероятность, что в качестве движка таблиц используется MyISAM, который не поддерживает внешние ключи. Стоит в качестве движка указать InnoDB

→ Ссылка