织梦dedecms怎样把别的数据库的文章导入到网站里

  1. AutoCMS
  2. /
  3. 建站资讯
  4. /
  5. 网站
logo
田行淑

网站  2026-08-21 16:48:02   260

织梦dedecms怎样把别的数据库的文章导入到网站里

网站的人多少都遇到过这种情况,手里有个老站或者别人给的数据库,里面文章不少,想直接搬到自己的织梦(DedeCMS)站里来用。一个个复制粘贴显然不现实,几百上千篇文章能把人累死。其实织梦后台自带的数据导入功能就能搞定这件事,只是很多人不知道或者用不熟,我把自己实际操作过的经验写下来,照着步骤走就行。

先把原理说透,织梦的文章存储分两部分,主表叫dede_archives,存的是标题、发布时间、点击量这些基础信息,另外还有一张附加表,默认是dede_addonarticle,存的是文章正文内容。两条表通过一个叫aid的字段关联起来,这个aid其实就是文章的唯一ID。所以导入文章,本质上就是往这两张表里插数据,搞清楚这个逻辑,后面就顺了。

实际操作时,先准备好你的数据源。比如你手头有个其他CMS或者老织梦站导出的SQL文件,或者能连上那个数据库。先看看表结构,重点看它有没有和dede_archives、dede_addonarticle结构类似的表。如果是别的CMS,比如帝国、WordPress,通常有一个文章主表和一个内容表,字段名可能不一样,但意思差不多,无非就是标题、栏目ID、发布时间、作者、正文、点击量这些。

接下来是最关键的一步,先把原数据导成CSV或者SQL格式。用phpMyAdmin或者Navicat都行,导出的时候注意编码,最好统一用UTF-8,不然中文会乱码。导出后先用文本编辑器打开看看,确认标题、正文、时间这些字段都在,顺序也清楚。

然后登录你的织梦后台,找到“核心”——“数据库备份/恢复”或者“SQL命令行工具”,不同版本位置稍有不同,但都在“系统”或者“核心”菜单下。织梦自带了一个SQL执行功能,可以直接跑SQL语句。但要注意,如果数据量大,一次执行太多条可能会超时,建议分批插入。

写SQL插入语句的时候,要特别注意织梦的ID规则。dede_archives表里有个id字段,dede_addonarticle里也有个aid字段,两者必须一致才能关联上。如果原数据的ID跟你的新库有冲突,可以用自增方式,先在dede_archives表插入一条,拿到新生成的id,再插入到dede_addonarticle表里。不会写SQL也没事,用织梦后台的“数据导入”功能,它支持直接导入CSV文件,字段可以自由映射,操作起来更直观。

在后台“核心”——“数据库备份/恢复”里,有个“数据导入”标签页,选择你准备好的CSV文件,它会让你匹配字段,把原来的标题字段对应到织梦的title,正文字段对应到body,发布时间对应到pubdate。注意发布时间在织梦里存的是时间戳,如果原数据是日期格式,得先转换好再导入。

导入之后,一定要检查栏目归属。织梦用的是typeid字段来区分栏目,如果你的原数据里也有栏目ID,要映射到新站的栏目ID,不然文章会全部跑到默认栏目里,甚至会因为typeid不存在而报错。建议先把新站的栏目建好,记下每个栏目的typeid,然后在导入时填进去。

还有一点容易踩坑,织梦的文章有审核状态和推荐属性,在表里对应flags字段和arcrank字段。如果你导入的是已发布的文章,把arcrank设成0(表示审核通过),flags可以留空或者设为c(普通文档)。如果设错,前台可能不显示文章。

图片和附件也要处理。如果原文章正文里引用了图片,图片地址是原来的域名,直接用会显示不出来。一个办法是在导入前,在CSV里用文本替换功能,把旧的图片域名替换成你新站的域名。更省事的方法是导入后用织梦后台的“数据库替换”功能,把旧域名批量替换成新的。注意只替换正文内容里的域名,别把其他字段也替换了。

导入完成后,记得去后台“生成”——“更新主页”和“更新栏目页”,重新生成一下静态页面。织梦是伪静态或者纯静态的话,不更新页面,新导入的文章不会出现在前台。如果你开了缓存,也要清一下缓存。

我之前帮一个朋友导过一万多篇文章,就是用的这个方法。他那数据是从一个老PHP站点导出来的,表结构差得挺远,我先用脚本把数据清洗成CSV,再映射字段导入织梦,中间遇到的最大问题就是发布时间格式不对,还有图片路径指向旧服务器。前前后后弄了两小时,主要是清洗数据花了时间,真正导入执行起来很快,几千篇也就一两分钟。

如果你的数据源不是SQL文件,而是已经能访问题库的在线数据库,那更方便,直接在织梦后台写一条SQL,用INSERT INTO ... SELECT ... 语法,从远程数据库的表里直接查询插入到dede_archives和dede_addonarticle。前提是你的服务器能访问那个数据库,且PHP环境允许跨库查询。具体写法大概是这样的:先插入主表,然后查询新插入的ID,再插入附加表。这个操作稍微有点技术要求,但原理还是前面说的那套,不难。

要提醒一点,导入前务必备份一下你的新站数据库,万一操作失误还能恢复。别嫌麻烦,数据安全永远是第一位。导入后先在前台看几篇文章,确认正常了再批量处理内容细节。

整个过程就是这么回事,核心就是理解织梦两张表的关系,准备好干净的数据,用后台工具导入,最后检查关联和生成页面。没有太多玄学,耐心点就能搞定。