解决 PbootCMS 升级后执行 SQL 错误:no such column: def1

在 PbootCMS 升级过程中,特别是从 v3.0.5 及以下版本升级到 v3.0.6 版本时,可能会遇到“执行 SQL 发生错误!错误:no such column: def1”的问题。这是因为在升级过程中,新字段 def1def2def3 和 picstitle 未成功添加到相应的数据库表中。以下是详细的解决方法:

问题原因

  • 升级 SQL 脚本未执行成功:
    • PbootCMS v3.0.6 版本增加了 ay_content 表中的 picstitle 字段和 ay_content_sort 表中的 def1def2def3 字段。
    • 如果升级过程中这些 SQL 语句未成功执行,会导致后续操作时报错。

解决方法

  1. 手动执行 SQL 语句

    • Sqlite 数据库升级脚本:
      • 提供了适用于 PbootCMS 3.0.0 版本升级至 3.0.6 版本的 SQL 脚本。
    -- ----------------------------
    -- Sqlite数据库升级脚本
    -- 适用于PbootCMS 3.0.0版本升级至3.0.6
    -- ----------------------------
    
    --
    -- 新增多图标题字段
    --
    ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';
    
    --
    -- 栏目新增三个描述备用字段
    --
    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 '';
  2. 执行 SQL 语句的步骤

    • 使用 SQLite 命令行工具:

      • 打开终端或命令提示符。
      • 导航到 data 文件夹,该文件夹包含 PbootCMS 的数据库文件(通常是 pbootcms.db)。
      bash
       
      cd /path/to/pbootcms/data
      • 使用 SQLite 命令行工具打开数据库文件。
      bash
       
      sqlite3 pbootcms.db
      • 在 SQLite 命令行中执行上述 SQL 语句。
      ALTER TABLE ay_content ADD COLUMN picstitle TEXT(1000) NOT NULL DEFAULT '';
      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 '';
      • 执行完毕后,退出 SQLite 命令行工具。
      sql
       
      .exit
    • 使用图形化工具:

      • 您也可以使用图形化的 SQLite 工具,如 DB Browser for SQLite 或 SQLiteStudio。
      • 打开 pbootcms.db 数据库文件。
      • 在 SQL 编辑器中粘贴并执行上述 SQL 语句。
  3. 处理重复列名错误

    • 错误提示:

      • 如果在执行 SQL 语句时遇到“错误:duplicate column name: picstitle”,说明该字段已经存在于 ay_content 表中。
      • 同理,如果遇到“错误:duplicate column name: def1”,说明该字段已经存在于 ay_content_sort 表中。
    • 解决方法:

      • 确认数据库表结构,避免重复添加字段。
      • 如果确定字段已经存在,可以跳过相应的 SQL 语句。
posted @   黄文Rex  阅读(17)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示