데이터베이스 스키마가 null 가능한 열에 대해 동기화되지 않았습니다.
방금 알았습니다doctrine:schema:validate
오류 발생:
[오류] 데이터베이스 스키마가 현재 매핑 파일과 동기화되지 않았습니다.
그래서 저는 노력했습니다.doctrine:schema:update --force --complete --dump-sql
성공적이었습니다.
다음 SQL 문이 실행됩니다.
ALTER TABLE user CHANGE last_login `last_login` DATETIME DEFAULT NULL;
데이터베이스 스키마를 업데이트하는 중...
1 query was executed
[OK] 데이터베이스 스키마가 성공적으로 업데이트되었습니다!
하지만 내가 뛰면,doctrine:schema:validate
다시 스키마가 동기화되지 않은 것과 관련하여 동일한 오류를 발생시킵니다.
데이터베이스 테이블 필드 정의를 확인했는데 보기에 좋습니다.
`last_login` datetime DEFAULT NULL
열은 다음과 같이 정의됩니다.
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $last_login;
저는 이것을 찾았습니다: https://github.com/doctrine/dbal/pull/2825
아이디어 있어요?
당신의config.yml
또는doctrine.yaml
Symfony 버전에 따라 데이터베이스 서버의 적절한 서버 버전을 설정합니다.예:
doctrine:
# …
dbal:
# …
server_version: mariadb-10.2.15
참고:mariadb
접두어
MariaDB 설치에서 서버 버전을 파생하려고 할 때 Dutrin이 올바른 MySQL API 버전을 결정하는 데 문제가 있는 것 같습니다.
구성에서 MySQL 버전 번호를 정의하는 데 도움이 될 수 있습니다.예를 들어 Debian Stretch에서 MariaDB를 사용할 때와 같은 여러 프로젝트에서 도움이 되었습니다.
# app/config/config.yml
doctrine:
# …
dbal:
# …
server_version: 5.7
이렇게 하면 독트린이 MySQL 버전의 자동 탐지를 건너뛰고 최신 API를 사용하는 효과가 있습니다.
.env.local의 DATABASE_URL을 변경하여 작동했습니다.이전(작동하지 않음)
DATABASE_URL=mysql://root:password@127.0.0.1:3306/db?serverVersion=10.4.12
이후(최종적으로 작동)
DATABASE_URL=mysql://root:password@127.0.0.1:3306/db?serverVersion=mariadb-10.4.12
언급URL : https://stackoverflow.com/questions/51854778/database-schema-is-not-in-sync-for-a-nullable-column
'sourcecode' 카테고리의 다른 글
공백이 있는 문자열을 PowerShell로 전달하려면 어떻게 해야 합니까? (0) | 2023.08.11 |
---|---|
Asp에서 로그인한 사용자의 사용자 ID를 가져옵니다.넷 MVC 5 (0) | 2023.08.11 |
활동 중 카메라 및 디스플레이에서 이미지 캡처 (0) | 2023.08.11 |
24시간 형식으로 Xcode Swift am/pm 시간 (0) | 2023.08.11 |
{0}, {0,}을(를) 사용하여 어레이를 초기화하시겠습니까? (0) | 2023.08.11 |