저는 MySQL 8.0과 SQLAlchemy를 사용하고 있습니다. 내 ID 열이 증가하지 않고 이유를 이해할 수 없습니다.
SQLAlchemy 모델:
으아악코드 해독:
으아악내가 받은 원래 오류는 다음과 같습니다.
으아악이 답변을 바탕으로 내 id 열에 index 매개변수를 추가하고 my.ini 파일을 편집하여 STRICT_TRANS_TABLES
모드에서 벗어났습니다. 새로운 오류는 다음과 같습니다:
이 주제에서 제가 찾은 모든 답변은 만일을 대비해 AUTO_INCRMENT
,但 SQLAlchemy 文档说这应该是这里的默认值,因为它是一个整数主键,没有指定为 false。我确实尝试添加 autoincrement=True
와 관련이 있지만 마이그레이션하려고 하면 Alembic에서 변경 사항이 감지되지 않았다고 알려줍니다.
P粉6210339282024-03-22 13:25:49
댓글부터 질문까지:
아니요, 이것이 정확히 작동하는 방식입니다. 특히 이런 모델의 경우
으아아아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
으아아아렌더링
으아아아