假设以前的栏目为文章模型,栏目ID为5, 新建模型ID为17(默认的文章模型为1,模型ID可以在内容模型管理最左侧看到),数据库中新模型附加表为dede_addon17(一般均为dede_addon加新建模型的ID,如果不同,则自行替换一下SQL语句中的表名)。
一、首先,我们先在后台备份好数据库(系统--数据库备份/还原),备份好数据库后,我们先将原文章模型下的栏目ID为5的内容全部转移到新的自定义模型附加表dede_addon17中,在系统——SQL命令行工具中输入以下SQL语句:
INSERT INTO dede_addon17(aid,typeid,redirecturl,userip,body) SELECT aid,typeid,redirecturl,userip,body FROM dede_addonarticle where dede_addonarticle.typeid =5;
这里需要注意的是,一定会一点SQL语句基础,如果你的自定义模型的body部分被你换成自定义的名字比如content,那么SQL语句就该改为:
INSERT INTO dede_addon17(aid,typeid,redirecturl,userip,content) SELECT aid,typeid,redirecturl,userip,body FROM dede_addonarticle where dede_addonarticle.typeid =5;
对比一下即知道,怎么把老数据对应到新的数据表中来。
二、删除原栏目下的全部内容(已经成功复制一份到新模型下了):
DELETE FROM `dede_addonarticle` WHERE typeid =5;
三、将关联模型的地方全部改写一遍,将原来栏目ID为5对应的频道模型全部由1改成17:
update dede_arctiny set channel=17 where typeid=5;
update dede_archives set channel=17 where typeid=5;
update dede_arctype set channeltype =17 where id =5;
做到这里就完美实现了将原来文章模型下的内容转移到新的自定义模型下。
四、如果你想把原来栏目ID为6的内容迁移到新的自定义模型ID为17,栏目ID为5的栏目下,则还需要执行以下SQL语句:
update dede_addon17 set typeid=5 where typeid=6;
update dede_archives set typeid=5 where typeid=6;
update dede_arctiny set typeid=5 where typeid=6;
这里是为了修改关联栏目,将原来调用ID为6的栏目的地方,全部改为ID为5的栏目。
五、删除旧栏目:
DELETE FROM dede_arctype WHERE id=6;
完成以上步骤后,如果网站后台新模型栏目下没有出现迁移来的文章列表,则需要执行到系统——系统错误修复下执行修复工作:
然后再将data/cache/listcache下的缓存文件全部删除(建议在服务器或虚拟空间控制面板、FTP中操作):