导入时我有一个字段可以包含大数据,似乎 CSV 有大约 65000(可能是 65535*)字符的非官方限制。因为 libreoffice calc 和 magento 都会截断该特定字段的数据。我调查得很好,我确定这不是因为特殊字符或引号。数据非常简单,行的格式彼此相似。
问题:如何增加该尺寸?或者至少我应该在哪里找到它?
注意:我在 libreoffice writer 中数了一下,大约是 65040。但可能使用回车符可以达到 65535
我改变:
1) 在表catalog_category_entity_text 类型的字段“值”从“文本”到“长文本”
2) 在文件app/code/core/Mage/ImportExport/Model/Import/Entity/Abstract.php const DB_MAX_TEXT_LENGTH = 65536; 到 const DB_MAX_TEXT_LENGTH = 16777215; 一切正常
你是对的,Magento 有一个限制,因为它在 MySQL 数据库中将文本字段设置为 TEXT,根据 MySQL 文档,这种字段最多支持 65535 个字符。
http://dev.mysql.com/doc/refman/5.0/es/storage-requirements.html
因此,您可以将 Magento 数据库中的列类型更改为使用 MEDIUMTEXT。我想正确的位置是在 catalog_product_entity_text 表中,您应该在其中修改“值”字段类型以满足您的需求。但请记住,这是危险的。在尝试之前进行完整备份。你甚至可能需要玩核心文件......不推荐!
我对 400 多个列表中的 8 个产品有同样的问题,我想我不会弄乱 Magento 核心和数据库,我们可以减少这几个产品的描述字符串。
CSV 可能不在乎。由于 Microsoft Access 允许包含大量数据的备注字段,我已经以 CSV 格式导出了 2-3k 描述,以便非常成功地导入 Magento。
您的限制是因为您使用的电子表格对单元格有单元格限制或导出限制,或者因为您尝试导入的字段在其表中为该字段设置了最大字符限制。
您可以通过使用 phpMyAdmin 查看该字段的最大字符设置来确定后者。