PbootCMS升级提示“执行SQL发生错误!错误:duplicate column name_ picstitle”如何解决?

COS、CDN
wdzsjl 2周前 (01-01) 阅读数 37 #PbootCMS

当在PbootCMS从v3.0.5及以下版本升级到v3.0.6时,可能会遇到“执行SQL发生错误!错误:duplicate column name: picstitle”的提示。这个问题通常是由于PbootCMS v3.0.6版本新增了几个字段,而在升级过程中SQL语句未能成功执行导致的。解决这个问题的方法如下:

  1. 手动执行SQL语句

    • 博主提供了两个版本的SQL语句,你可以手动执行这些SQL语句来完成升级。
    • 首先,备份现有的数据库,以防万一出现问题可以恢复。
  2. 执行多图标题字段的SQL语句

    • 打开SQLite数据库管理工具(如DB Browser for SQLite),连接到你的PbootCMS数据库。
    • 执行以下SQL语句,添加多图标题字段:
      sql
       
      ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';
    • 如果表中已经存在picstitle字段,这条语句会报错。此时可以忽略这个错误,继续执行其他SQL语句。
  3. 执行栏目新增描述备用字段的SQL语句

    • 继续在SQLite数据库管理工具中执行以下SQL语句,添加栏目描述备用字段:
      sql
       
      ALTER TABLE ay_content_sort ADD COLUMN def1 TEXT(1000) NOT NULL DEFAULT ''; ALTER TABLE ay_content_sort ADD COLUMN def2 TEXT(1000) NOT NULL DEFAULT ''; ALTER TABLE ay_content_sort ADD COLUMN def3 TEXT(1000) NOT NULL DEFAULT '';
  4. 验证SQL语句执行结果

    • 执行完上述SQL语句后,重新访问PbootCMS后台,检查是否还有“执行SQL发生错误”的提示。
    • 如果问题已经解决,可以继续完成其他升级步骤。
  5. 检查数据库结构

    • 如果问题仍然存在,可以手动检查数据库表结构,确保ay_contentay_content_sort表中确实添加了所需的字段。
    • 在SQLite数据库管理工具中,使用以下SQL语句查看表结构:
      sql
       
      PRAGMA table_info(ay_content); PRAGMA table_info(ay_content_sort);
  6. 清理缓存

    • 有时候缓存也可能导致问题,尝试清理PbootCMS的缓存文件。通常缓存文件位于runtime目录下,可以删除该目录下的所有文件和子目录。
    • 例如,可以使用以下命令删除缓存文件:
      bash
       
      sudo rm -rf /var/www/html/你的域名/runtime/*

通过以上步骤,可以有效解决PbootCMS升级过程中“执行SQL发生错误!错误:duplicate column name: picstitle”的问题,确保升级过程顺利完成。

COS、CDN
热门