Ошибка при создании 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