【发布时间】:2020-02-28 10:36:03
【问题描述】:
我在 SuiteCRM 版本 7.11.10(Sugar 版本 6.5.25)中遇到问题。
我正在尝试给外地打电话。当我将字段大小设置为 255、100 或 50 时失败。但如果我把尺寸设置为 5 就可以了。
sugarcrm.log 的输出错误如下:
Fri Feb 28 10:09:52 2020 [41][33f90d60-b3c5-a268-7484-5e54fc96488f][FATAL] Mysqli_query failed.
Fri Feb 28 10:09:52 2020 [41][33f90d60-b3c5-a268-7484-5e54fc96488f][FATAL] Cannot create column Query Failed: ALTER TABLE accounts_cstm add COLUMN phone_c varchar(100) NULL : MySQL error 1118: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs
Fri Feb 28 10:09:52 2020 [41][33f90d60-b3c5-a268-7484-5e54fc96488f][FATAL] Exception handling in /opt/suitecrm/include/MVC/Controller/SugarController.php:400
Fri Feb 28 10:09:52 2020 [41][33f90d60-b3c5-a268-7484-5e54fc96488f][FATAL] Exception in Controller: Database failure. Please refer to suitecrm.log for details.
Fri Feb 28 10:09:52 2020 [41][33f90d60-b3c5-a268-7484-5e54fc96488f][FATAL] backtrace:
#0 /opt/suitecrm/include/database/DBManager.php(353): sugar_die('Database failur...')
#1 /opt/suitecrm/include/database/DBManager.php(328): DBManager->registerError('Cannot create c...', 'Cannot create c...', true)
#2 /opt/suitecrm/include/database/MysqliManager.php(179): DBManager->checkError('Cannot create c...', true)
#3 /opt/suitecrm/modules/DynamicFields/DynamicField.php(657): MysqliManager->query('ALTER TABLE acc...', true, 'Cannot create c...')
#4 /opt/suitecrm/modules/DynamicFields/templates/Fields/TemplateField.php(594): DynamicField->addFieldObject(Object(TemplatePhone))
#5 /opt/suitecrm/modules/ModuleBuilder/controller.php(399): TemplateField->save(Object(DynamicField))
#6 /opt/suitecrm/include/MVC/Controller/SugarController.php(525): ModuleBuilderController->action_SaveField()
#7 /opt/suitecrm/include/MVC/Controller/SugarController.php(494): SugarController->do_action()
#8 /opt/suitecrm/include/MVC/Controller/SugarController.php(468): SugarController->handle_action()
#9 /opt/suitecrm/modules/ModuleBuilder/controller.php(101): SugarController->process()
#10 /opt/suitecrm/include/MVC/Controller/SugarController.php(373): ModuleBuilderController->process()
#11 /opt/suitecrm/include/MVC/SugarApplication.php(113): SugarController->execute()
#12 /opt/suitecrm/index.php(52): SugarApplication->execute()
#13 {main}
我了解 SuiteCRM 正在保存超过最大行大小 65535 的行,这可能是因为它使用了大量具有固定大小的 VARCHAR 列的列。当它添加最后一列时,除非您减小大小,否则它不适合。感谢post,我试图减小尺寸。
数据库似乎在告诉我解决方案。将一些 VARCHAR 列更改为 TEXT 或 BLOB。
我尝试添加较小的字段,如文本或整数字段,没有问题。不幸的是,例如,减小字段大小不适用于下拉菜单。添加下拉菜单总是失败。所以看起来 SuiteCRM 列太大了,没有足够的大小来容纳额外的数据。
有没有办法更改配置以避免任何代码更改? 我需要升级 SuiteCRM 版本吗?
【问题讨论】:
-
将一些字段从自定义表移到模块的核心表中如何?