ошибка 1005, «Не могу создать таблицу - SQLAlchemy to MySQL»

0

Попытка подключиться к MySQL из Flask-SQLAlchemy, но получить

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) (1005, "Невозможно создать таблицу ql12255647.member_courses... при вводе команды db.create_all()

Когда я использую sqlite:////tmp/test.db все в порядке и никаких ошибок

Нужно решить проблему. Мой код ниже:

member_courses = db.Table('member_courses',
      db.Column ('member_id', db.String (80), db.ForeignKey('member.id')),
      db.Column ('course_id', db.String (80), db.ForeignKey('course.id')))

class Course(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     course = db.Column(db.String(80), unique = True)

class Member(db.Model):
     id = db.Column(db.Integer,primary_key=True)
     name = db.Column(db.String(80), unique = True)
     email = db.Column(db.String(80), unique = True)
     courses = db.relationship('Course', secondary='member_courses', 
     backref='member', 
     lazy = 'dynamic')

Ошибка:

sqlalchemy.exc.InternalError: (pymysql.err.InternalError) 
(1005, "Can't create table 'sql12255647.member_courses' (errno: 150)") 
[SQL: '\nCREATE TABLE member_courses (\n\tmember_id VARCHAR(80), \n\tcourse_id VARCHAR(80), \n\tFOREIGN KEY(member_id) REFERENCES member (id), \n\tFOREIGN KEY(course_id) REFERENCES course (id)\n)\n\n']
(Background on this error at: http://sqlalche.me/e/2j85)
  • 0
    Пожалуйста, отправьте полный текст ошибки, которую вы получаете
  • 0
    Уважаемый Михаил, пожалуйста, посмотрите
Показать ещё 1 комментарий
Теги:
sqlalchemy

1 ответ

2

Код ошибки 1005 относится к сбою создания таблицы, поскольку ограничение Foreign Key constraint was not correctly formed. Чтобы решить эту ошибку, вы, вероятно, просто должны убедиться, что ваш внешний ключ имеет тот же тип, что и основной ключ.

Принятый ответ здесь представлен подробный обзор сценариев, которые вы можете проверить.

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню