Возврат ограничений внешнего ключа не выполняется в sqlalchemy fastapiPython

Программы на Python
Ответить
Anonymous
 Возврат ограничений внешнего ключа не выполняется в sqlalchemy fastapi

Сообщение Anonymous »

в router.py

Код: Выделить всё

@router.post("/courses/{instructor_id}", response_model=course.Course,
status_code=status.HTTP_201_CREATED)
def create_course(instructor_id: int, course: course.CourseBase,  db: Session = Depends(get_db)):
return crud.create_course(db=db, course=course, instructor_id=instructor_id)
в crud.py

Код: Выделить всё

def create_course(db: Session, course: course.CourseBase, instructor_id: int):
current_date = datetime.today().strftime("%d/%m/%Y %H:%M:%S")
db_course = models.Course(
name=course.name,
grade=course.grade,
mainTopic=course.mainTopic,
background=course.background,
courseType=course.courseType,
subTopics=course.subTopics,
startingDate=course.startingDate,
instructor_id=instructor_id,
dateCreated=current_date
)
db.add(db_course)
db.commit()
db.refresh(db_course)
return db_course
в models.py

Код: Выделить всё

class Course(Base):
__tablename__ = "courses"

course_id = Column(Integer, primary_key=True, index=True)
name = Column(String, index=True)
dateCreated = Column(String, index=True)
background = Column(String)
courseType = Column(String)
grade = Column(String)
mainTopic = Column(String)
subTopics = Column(String(1500))
startingDate = Column(String, index=True)
instructor_id = Column(Integer, ForeignKey("instructors.instructor_id"))

instructor = relationship("Instructor", back_populates="courses")
в файле Schemas.py

Код: Выделить всё

class CourseBase(BaseModel):
name: str
courseType: str
background: str | None = None
grade: str
mainTopic: str
subTopics: str | None = None
startingDate: str | None = None

class Config:
orm_mode = True

class Course(CourseBase):
course_id: int
name: str
dateCreated: str | None = None
instructor_id: int

class Config:
orm_mode = True
Локальный запуск этого кода создает добавления и работает без сбоев.
При запуске в производственной среде происходит сбой и возвращается эта ошибка.
Невозможно добавить или обновить дочерняя строка: ограничение внешнего ключа не выполнено (

Код: Выделить всё

DB.courses
, CONSTRAINTcourses_ibfk_1 ВНЕШНИЙ КЛЮЧ (

Код: Выделить всё

instructor_id
) ССЫЛКИ на инструкторов (instructor_id))

Подробнее здесь: https://stackoverflow.com/questions/791 ... my-fastapi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»