2012-04-09 3 views
1

) 큰 데이터를 포함 할 수있는 가져올 때 하나의 필드가있는 경우 CSV에 비공식적으로 약 65000 (65535 *) 문자의 제한이있는 것으로 보입니다. libreoffice calc와 magento는 특정 필드에 대한 데이터를 잘라 버리기 때문입니다. 나는 잘 조사했고, 특별한 성격이나 따옴표 때문이 아니라고 확신한다. 데이터는 꽤 똑바로 앞으로, 라인은 서로 형식이 비슷합니다.Magento에서 csv 필드의 최대 크기를 늘리는 방법 (

질문 : 크기를 늘리는 방법은 무엇입니까? 또는 적어도 그것을 찾으려면 어디를 봐야합니까?

참고 : 나는 리브레 오피스 라이터의 계산과 약 65040. 그러나 아마 캐리지 리턴 문자를하기 The CSV는 덜 신경 수 65535

답변

1

Magento에는 텍스트 필드가 MySQL 데이터베이스에 TEXT로 설정되어 있고, MySQL 문서에 따르면이 필드는 최대 65535 개의 문자를 지원하기 때문에 한계가 있습니다.

http://dev.mysql.com/doc/refman/5.0/es/storage-requirements.html

그래서 당신은 MEDIUMTEXT를 사용하도록 젠토 데이터베이스의 열 유형을 변경할 수 있습니다. 올바른 위치는 catalog_product_entity_text 테이블에 있으며, 여기서 'value'필드 유형을 수정하여 필요에 맞게 수정해야합니다. 그러나 제발, 위험하다는 것을 명심하십시오. 시도하기 전에 전체 백업을 만드십시오. 그리고 코어 파일을 가지고 놀아야 할 수도 있습니다 ... 권장하지 않습니다!

400 이상의 목록에서 8 개 제품과 동일한 문제가 있습니다. Magento 코어 및 데이터베이스를 사용하지 않을 것이라고 생각합니다. 몇 가지 제품에 대한 설명 문자열을 줄일 수 있습니다.

+0

. 내 클라이언트가 여러 제품에서 데이터를 나누기로 결정한 것과 같습니다. 내 접근 방식은 그다지 효과적이지 않은 방식으로 정보를 저장하는 것이 었습니다. –

+0

당신을 진심으로 환영합니다. 그런데 간단한 HTML 태그 정리를 수행하여 일부 행에서 설명 필드 길이를 줄일 수있었습니다. 제 말은 여분의 공백을 삭제하고 " ", 빈 문단 등을 복제하는 것입니다. 동일한 솔루션을 적용 할 수 있는지 여부를 모릅니다. – peterfh

0

에 도달 할 수 있었다. Microsoft Access에서 꽤 많은 데이터를 포함 할 수있는 메모 필드를 허용하기 때문에 CSV 형식의 2-3k 설명을 Magento로 성공적으로 가져올 수있었습니다.

셀 제한이나 내보내기 제한이있는 스프레드 시트를 사용 중이거나 가져 오는 필드에 해당 필드의 테이블에 최대 문자 제한이 설정 되었기 때문에 제한 사항이 있습니다.

phpMyAdmin을 사용하여 후자를 결정하면 해당 필드에 최대 문자 설정이 무엇인지 알 수 있습니다.

+0

Microsoft Excel에서 파일을 편집하는 경우 기본값은 http://office.microsoft.com/en-us/excel-help/excel-specifications-and-limits-HP010342495.aspx에 있습니다. ? CTT = 5 & origin = HP005199291 –

+0

답해 주셔서 감사합니다. 하지만 당신은 이것을 알아 채지 못했을 것입니다,하지만 저는 65535라고 말했습니다, 그것은 65K> 2,3K입니다. 언급 한 바와 같이 충분히 잘 조사해 봤는데, 나는 magento에서 크기면에서 한계가 있다고 확신한다. (내 프로그램은 사실 제한이 없다. 나는 또한 상수에 하드 코딩 된 것을 발견했으며, mysql의 텍스트가 65535로 제한된다는 것을 기억하고있다. 중간 텍스트로 변경해야한다. 불행히도 magento는 이에 유연하지 않습니다. 플러그인을 작성해야합니다. DB에서 변경하는 것이 지금까지 충분한 지 확실하지 않습니다. –

+0

문제는 여전히 필드 당 65k 이상을 조작 할 수 있고> 65k를 수용 할 수있는 필드 너비를 갖는 프로그램을 가지고 있습니다. CSV 파일은 전송 매체 일뿐입니다. 필드 데이터 유형을 변경하고 65k 이상을 허용하는지 확인하십시오 (가져 오기 코드에 고정 배선 제한이없는 경우). 실험을 위해 테스트 서버를 사용할 것입니다. 엑세스 메모 필드에 대한 제한을 살펴본 결과 65K였습니다. Open/Libre Office 셀 내용의 글자 수 한도는 65k이므로 필드에 65k가 넘는 CSV를 생성하기 위해 뭔가가 필요합니다. Excel은 32k, fwiw만을 허용합니다. –

2

내가 변경 :

테이블에

1) catalog_category_entity_text "텍스트"에서 필드 "값"의 유형의 파일 응용 프로그램/코드 "LONGTEXT"

2)에/코어/마법사/ImportExport/Model/Import/Entity/Abstract.php const DB_MAX_TEXT_LENGTH = 65536; ~ const DB_MAX_TEXT_LENGTH = 16777215; 및 모두 OK

+0

$ installer-> run ("ALTER TABLE". $ installer-> getTable ('catalog_product_entity_text'). "MODIFY COLUMN'value' longtext"); –

관련 문제