您当前的位置:主页 > 教程合集 > DedeCMS网站首页DedeCMS

DedeCMS栏目文章转入新的自定义模型的方法

发布时间:2018-04-17编辑:余斗阅读:(0)字号:
    博客的碎语墙栏目以前是在文章模型下,后来发现发心情只需要配图和文字即可,文章模型涉及的东西太多,用文章模型来发心情有些大才小用,而且不便于后期调用,就重新做了一个自定义模型来专门发心情。出现的一个问题就是,如何把已经发布的文章来迁移到这个新模型的数据表中呢? 今天余斗就教大家如何实现DedeCMS栏目文章转入新的自定义模型: 假设以前的栏目为文章模型,栏目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;
     
    完成以上步骤后,如果网站后台新模型栏目下没有出现迁移来的文章列表,则需要执行到系统——系统错误修复下执行修复工作: DedeCMS栏目文章转入新的自定义模型的方法 然后再将data/cache/listcache下的缓存文件全部删除(建议在服务器或虚拟空间控制面板、FTP中操作): DedeCMS栏目文章转入新的自定义模型的方法
关键字词DedeCMS自定义模型文章
余斗余斗
  1. 转载请注明:DedeCMS栏目文章转入新的自定义模型的方法
  2. 版权声明:本站原创文章,由发表在DedeCMS分类下,于2018-04-17最后更新
DedeCMS对标签调用的内容进行判断并输出的方法
DedeCMS限制搜索指定栏目或模型的办法
手机扫一扫 随身带着看
鸿运国际手机登录首页