You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 1.11+Django-CMS项目从SQLite3迁移至MySQL失败求助

解决Django 1.11 + Django-CMS从SQLite迁移到MySQL的常见错误

我之前帮不少开发者解决过Django-CMS从SQLite迁MySQL的问题,你碰到的这两个错误其实都是迁移流程没踩对关键点导致的——一个是Django-CMS的树结构缓存没初始化,另一个是ContentType数据重复冲突。下面给你一套经过验证的步骤,能完美避开这两个坑:

一、先做好MySQL数据库的准备工作

  • 先在MySQL里创建编码正确的数据库:
CREATE DATABASE my_cms_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 修改Django项目的settings.py,替换数据库配置为MySQL:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'my_cms_db',
        'USER': '你的数据库用户名',
        'PASSWORD': '你的数据库密码',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}
  • 安装适配的MySQL驱动:pip install mysqlclient(Django 1.11版本推荐用这个,兼容性最好)

二、初始化MySQL的基础表结构(关键!别直接导SQLite的dump)

很多人出错就是直接把SQLite的整个库导过去,但Django的ContentType、权限表在SQLite和MySQL里的生成逻辑不一样,直接导会冲突。先执行:

python manage.py migrate

这一步会帮你创建所有Django和Django-CMS的基础表,包括自动生成正确的ContentType数据,从根源避免重复条目错误。

三、导出SQLite的数据(排除冲突表)

用Django自带的dumpdata命令导出业务数据,但要排除那些会导致冲突的系统表:

python manage.py dumpdata --exclude contenttypes --exclude auth.permission --exclude cms.mpttpage > db_dump.json

为什么要排除这些表?

  • contenttypes:刚才migrate已经在MySQL里生成了,导入会触发重复主键错误
  • auth.permission:权限和ContentType强关联,同样会重复
  • cms.mpttpage:这是Django-CMS维护Page树结构的缓存表,会自动生成,手动导入反而会破坏树结构

四、把数据导入MySQL

确保MySQL的基础表已经创建完成,然后执行:

python manage.py loaddata db_dump.json

五、修复Page树结构(解决_node_cache错误)

导入数据后,Django-CMS的Page树节点缓存可能没正确初始化,这就是你碰到AttributeError: 'Page' object has no attribute '_node_cache'的原因。执行Django-CMS自带的修复命令:

python manage.py cms fix-tree

这个命令会重新构建Page模型的树节点缓存,彻底解决树结构相关的错误。

额外排查:如果还是碰到重复条目错误?

要是导入时还是出现1062 Duplicate entry,可以试试:

  1. 先清空MySQL里的django_content_type表:TRUNCATE TABLE django_content_type;
  2. 重新执行python manage.py migrate,确保ContentType重新生成
  3. 再导入之前的db_dump.json数据

最后验证迁移结果

启动服务器测试:

python manage.py runserver

检查网站前端内容、后台管理的Page操作是否正常,确认所有数据都迁移成功。


内容的提问来源于stack exchange,提问作者Dr3w Br1ck13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:03:13