MySQL에서 SQLAlchemy를 자동 증가시킬 수 없습니다.
P粉899950720
P粉899950720 2024-03-21 19:08:36
0
1
315

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

SQLAlchemy 모델:

으아악

코드 해독:

으아악

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

으아악

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

으아악

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

P粉899950720
P粉899950720

모든 응답(1)
P粉621033928

댓글부터 질문까지:

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

으아아아

alembic 修订版 --autogenerate

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

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

으아아아

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

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

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

.

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

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

to

으아아아

렌더링

으아아아
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿