帝国 CMS 数据导入导出
学完这篇你能自己完成帝国CMS 7.5 的整站数据导出备份、跨服务器恢复导入,以及只迁某张内容表的精细操作,不用再到处找插件。
第一步:先分清你要导的是哪一层
帝国CMS(7.5,UTF-8 版)的数据分三块,导错层会白折腾:
- 整站搬迁 → 用后台「备份与恢复数据」,最省事。
- 只搬某个栏目的文章表 → 用命令行 mysqldump 导单张表。
- 只补几十上百条内容 → 后台「执行 SQL」或 phpMyAdmin 导 CSV。
记住默认表前缀是 phome_。新闻模型的核心表是 phome_ecms_news(主表)、phome_ecms_news_data_1(存放正文的副表)、phome_ecms_news_index(索引表),附件路径记录在 phome_enewsfile_1 里。这几个表最好一起动。
第二步:在源站用后台备份导出
进入后台 → 顶部菜单「系统」→ 左侧「备份与恢复数据」→「备份数据」。页面上:
- 备份范围选「备份全部数据表」(换服务器时选它),或手动勾选要导的表;
- 「每卷大小」默认 2048 KB,数据库超过 200 MB 建议改小到 1024,避免 PHP 超时中断;
- 数据库编码按你站点实际编码选,UTF-8 站点选 utf8;
- 点「开始备份」。备份文件会生成在
e/data/backupdata/下,按时间命名的目录里。
注意:不要用浏览器直接下载
e/data/backupdata/里的文件,用 FTP 或宝塔面板把这个目录整体打包下载,目录名要一起保留,恢复时靠它识别。
第三步:在目标站恢复导入
先在目标服务器装一套同版本、同编码的帝国CMS,数据库前缀必须也是 phome_,装完后删掉 install 目录。
- 把上一步下载的备份目录整个上传到新站的
e/data/backupdata/; - 后台 →「系统」→「备份与恢复数据」→「恢复数据」;
- 在下拉框里选刚上传的备份目录,勾选要恢复的表;
- 如果新站是全新安装、自带演示数据,务必勾上「还原前删除原表」,否则主键冲突会导不进去;
- 点「开始恢复」。
如果源站有附件,还要用 FTP 把源站 d/file/ 整个目录覆盖到新站同位置——数据库里只存路径,图片不会跟着 SQL 走。
注意:源站和新站的帝国CMS 版本号必须一致(都在后台首页右下角能看到,比如 7.5),跨大版本直接还原表结构经常报错。
第四步:只导一张内容表,用 mysqldump
在源站服务器命令行执行,导出新闻主表:
mysqldump -u 数据库用户 -p --default-character-set=utf8 --single-transaction phome phome_ecms_news > /tmp/news.sql
把 news.sql 传到新服务器后导入:
mysql -u 数据库用户 -p --default-character-set=utf8 phome < /tmp/news.sql
注意:
--default-character-set=utf8两边都要写,写错会出现整站中文变问号;导入前确认目标站的phome_ecms_news是空的,否则主键重复会中断导入。
第五步:补几十条内容,用后台执行 SQL
后台 →「系统」→「执行 SQL」,把 INSERT 语句粘进去执行即可。数据量大(几千条以上)时改走 phpMyAdmin:选中 phome_ecms_news 表 →「导入」→ 选 CSV → 字符集选 utf-8,并把第一行作为字段名勾上。
注意:手动插
phome_ecms_news后,phome_ecms_news_data_1和phome_ecms_news_index里没有对应记录,前台内容页会打不开。更稳的做法是用后台「信息管理」里的批量添加,或走采集功能。
第六步:导入后必须做的三件事
- 「系统」→「数据更新」→「刷新所有缓存」;
- 「系统」→「数据更新」→「更新所有栏目页」和「更新所有内容页」;
- 「系统」→「数据表与系统模型」→「管理数据表」,核对每张表的记录条数和源站是否一致。
小结
- 整站搬迁走「系统 → 备份与恢复数据」的备份/恢复,附件目录
d/file/单独传; - 单表迁移用
mysqldump,前后加--default-character-set=utf8; - 表前缀、CMS 版本、数据库编码三者必须一致;
- 全新站恢复要勾「还原前删除原表」,避免主键冲突;
- 导完必须刷新缓存并更新栏目页、内容页,否则前台看不到变化。
原文链接:https://www.gj0.com/thread-1068.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。