2017-10-26 13 views
0

아마도이 동작은 버그 또는 내 자신의 무지이지만 아마도이 문제를 우연히 만났고 누군가가 약간의 통찰력을 가지길 희망합니다.Symfony 길이 동작을 가진 텍스트의 엔티티 속성

나는 최근에이라는 기존 엔티티에 속성을 추가했는데, 알 수없는 양의 데이터가 들어 있기 때문에 텍스트 속성 (길이가 아닌 문자열)을 원했습니다. 나는 게으른 얻었고, 기업의 기존 제목 속성을 복사, '노트'에 이름과 테이블 매핑을 변경하지만, 주석에 length 속성을 제거하는 것을 잊었다, 그래서 ...이와 결국

/** 
* @var string 
* 
* @ORM\Column(name="notes", type="text", length=255, nullable=true) 
*/ 
private $notes; 
내가 스키마를 업데이트하고 기존의 엔티티에 notes를 채우는 시작하고 그들이 절단되고 있었다 것으로 나타났습니다

, 내 실수를 깨달았 길이 속성을 제거, 메타 데이터 캐시를 삭제하고, 내가받은하는 스키마를 업데이트했다 :

업데이트 할 것이 없습니다 - 데이터베이스가 이미 현재 엔터티 메타 데이터와 동기화되어 있습니다.

필자는 더 이상 내 엔티티에 길이 속성이 없지만 notes은 여전히 ​​잘립니다.

테이블을 검사했을 때 notes 열이 TINYTEXT이라는 것을 알고 있으므로 문제가 될 수 있습니다. 수동으로 LONGTEXT으로 변경하고 문제가 해결되었습니다.

그래서 내 질문은 :

php bin/console doctrine:schema:update --force를 실행 할 길이 속성이없는 상태에서 TINYTEXT에서 LONGTEXT하는 열을 변경하지 (심지어 교리의 메타 데이터 캐시를 제거 후)에?

Doctrine에서 과도한 것입니까, 아니면 뭔가 빠졌습니까?

답변

0

the documentation을 보면 length을 지정하지 않으면 기본값은 255입니다.

설명서에 length<= 255 인 경우 TINYTEXT을 사용하는 것으로 표시된 here도 나와 있습니다.

+0

'string'이 아닌'string'과'binary' 타입에 적용됩니다. 해당 라인 옆에있는 문서에서 관련 참조 numbrers [1,2]를 클릭하면 적용되는 위치가 표시됩니다. 또한이 : http://doctrine-dbal.readthedocs.io/en/latest/reference/types.html#text –

+0

나는 당신이 무슨 말을하는지 알지만, 질문은 왜 열이 tinytext에서 longtext'text' 타입에서 length 속성을 제거하면됩니다. –