>  Q&A  >  본문

MySQL에서 SQLAlchemy를 자동 증가시킬 수 없습니다.

저는 MySQL 8.0과 SQLAlchemy를 사용하고 있습니다. 내 ID 열이 증가하지 않고 이유를 이해할 수 없습니다.

SQLAlchemy 모델:

으아악

코드 해독:

으아악

내가 받은 원래 오류는 다음과 같습니다.

으아악

이 답변을 바탕으로 내 id 열에 index 매개변수를 추가하고 my.ini 파일을 편집하여 STRICT_TRANS_TABLES 모드에서 벗어났습니다. 새로운 오류는 다음과 같습니다:

으아악

이 주제에서 제가 찾은 모든 답변은 만일을 대비해 AUTO_INCRMENT,但 SQLAlchemy 文档说这应该是这里的默认值,因为它是一个整数主键,没有指定为 false。我确实尝试添加 autoincrement=True와 관련이 있지만 마이그레이션하려고 하면 Alembic에서 변경 사항이 감지되지 않았다고 알려줍니다.

P粉899950720P粉899950720211일 전269

모든 응답(1)나는 대답할 것이다

  • P粉621033928

    P粉6210339282024-03-22 13:25:49

    댓글부터 질문까지:

    아니요, 이것이 정확히 작동하는 방식입니다. 특히 이런 모델의 경우

    으아아아

    alembic 修订版 --autogenerate

    을(를) 생성합니다. 으아아아

    (명시적으로 지정하지 않고 autoincrement=)但是当 alembic 升级 head Get SQLAlchemy를 사용하여 실제로 SQLAlchemy가 내보내는 테이블을 생성합니다.

    으아아아

    아니요. 위에 표시된 대로 Alembic은 테이블이 처음 생성될 때 AUTO_INCRMENT。它没有检测到的是,具有现有表的 ORM 模型的列从 autoincrement=False 更改为 autoincrement=True를 올바르게 처리합니다(그 반대의 경우도 마찬가지).

    이것은 커밋 메시지 여기 에 표시된 대로 알려진 동작입니다.

    "이 플래그는 열의 "자동 증가" 상태 변경을 지원합니다. 이는 백엔드 간에 이식할 수 없기 때문입니다

    .

    MySQL은 ALTER_TABLE을 통해 열의 AUTO_INCRMENT 속성 변경을 지원하므로 "null" upgrade 메소드

    를 변경하여 수행할 수 있습니다. 으아아아

    to

    으아아아

    렌더링

    으아아아

    회신하다
    0
  • 취소회신하다