我在drupal 7中有一个视图,我正在尝试添加另一个页面。我收到以下错误:
PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'data' at row 1: INSERT INTO {ctools_object_cache} (sid, obj, name, data, updated) VALUES ...etc...
似乎blob数据类型对于存储的数据来说太小了....如果我将ctools_object_cache->数据列更改为LONGBLOB,它可以工作。但这是解决这个问题的最佳方法吗?
答案 0 :(得分:2)
如果只更改数据库中的字段架构,则在更新ctools模块时可能会遇到问题。如果ctools对该列进行任何更改,最终可能会尝试将其设置为旧版本,并且最终可能会丢失数据。
除了更改数据库字段外,最好修补ctools_schema()
(在模块的.install
文件中)并将列更改为LONGBLOB
。然后,当新版本的ctools出现时,您可以正常升级,并在需要时重新修补安装文件(请记住,此问题可能已在模块的问题队列中报告,并且可能已应用类似的修复在ctools模块的update
挂钩中;在更新之前,您应该查看新版本的.install
文件以确保它。