当前位置: 首页 > 后端技术 > PHP

知梦网站数据迁移到新站很容易实现

时间:2023-03-30 05:53:02 PHP

众所周知,知梦已经开始收费了,对于国内的版权意识来说应该不是什么坏事,但是对于站长们来说就有点麻烦了想免费使用,又不想惹事。很多朋友来问我们的MyCms是否支持织梦的数据迁移。目前,我们已经实现了织梦原创文章和产品的一键导入。下面简单介绍一下实现过程。1、连接数据库如果要实现数据的迁移和导入,首先要获取数据库信息,所以我们的第一步就是实现填写数据库信息的功能。你可以打开Dreamweaving网站的data/common.inc.php文件,填入相应的内容。单次导入数据字段为一次导入的数据量。默认是100,这个可以根据自己的服务器调整。这一步只是为了保存数据库信息,没有别的。附上数据库连接代码//$this->config为保存的数据库信息$dedeConnection=array_merge(['driver'=>'mysql','charset'=>'utf8','collat??ion'=>'utf8_unicode_ci','prefix'=>$this->config['dede_prefix'],],$this->config);config(['database.connections.dedecms'=>$dedeConnection]);$this->connection=DB::connection('dedecms');二、导入分类/文章1、导入文章分类,明确上下级关系。publicfunctionarticleCategory(){if(!Storage::exists("dede_article_category")){//导入分类$categories=$this->connection->table('arctype')->get();$catArray=$catParentArray=[];foreach($categoriesas$category){$cid=ArticleCategory::insert(['pid'=>0,'name'=>$category->typename,]);}$catArray[$category->id]=$cid;$catParentArray[$cid]=$category->topid;}foreach($catParentArrayas$key=>$value){if($value>0){$ac=ArticleCategory::find($key);$ac->pid=$catArray[$value];$ac->保存();}}Storage::put("dede_article_category",json_encode($catArray));}else{$catArray=json_decode(Storage::get("dede_article_category"),true);}return$catArray;}2.要先明确要导入文章信息,然后对应自己系统的字段,开始导入MyCms导入的代码供大家参考。publicfunctionarticle():JsonResponse{$date=date('Y-m-dH:i:s');//最后导入ID$lastId=Storage::exists("dede_article_last_id")?存储::获取(“dede_article_last_id”):0;$articles=$this->connection->table('archives')->leftJoin('addonarticle','aid','=','id')->where([['channel','=',1],['id','>',$lastId],])->limit($this->config['batch_number'])->get();$importLog=[];$catArray=$this->articleCategory();foreach($articlesas$article){$aid=Article::insert(['category_id'=>$catArray[$article->typeid],'title'=>$article->title,'content'=>$article->body,'description'=>$article->description,'img'=>$article->litpic,'author'=>$article->writer,'view'=>$article->click,'创建时间'=>date('Y-m-dH:i:s',$article->senddate),'updated_at'=>date('Y-m-dH:i:s',$article->pubdate),]);如果($article->shorttitle){$meta=['article_id'=>$aid,'meta_key'=>'short_title','meta_value'=>$article->shorttitle,];ArticleMeta::insert($meta);}$lastId=$article->id;$tagIds=(newArticleTag)->insertTags(explode(",",trim($article->keywords,",")));(newArticleTagRel)->insertRel($aid,$tagIds);//导入记录$importLog[]=['type'=>'文章','oid'=>$article->id,'mid'=>$aid,'title'=>$article->title,'created_at'=>$date,'updated_at'=>$date,];}Dedecms::insertAll($importLog);//写入导入最后IDStorage::put("dede_article_last_id",$lastId);return$this->result(true);}3.导入产品导入产品也是一样,直接附上代码即可publicfunctiongoods(){$date=date('Y-m-dH:i:s');$lastId=Storage::exists("dede_goods_last_id")?存储::获取(“dede_goods_last_id”):0;$articles=$this->connection->table('archives')->leftJoin('addonshop','aid','=','id')->where([['channel','=',6],['id','>',$lastId],])->limit($this->config['batch_number'])->get();$importLog=[];$catArray=$this->goodsCategory();foreach($articlesas$article){$aid=Goods::insert(['category_id'=>$catArray[$article->typeid],'goods_name'=>$article->title,'content'=>$article->body,'description'=>$article->description,'goods_image'=>$article->litpic,'view'=>$article->click,'shop_price'=>$article->trueprice?:$文章->价格,'market_price'=>$article->price,'created_at'=>date('Y-m-dH:i:s',$article->senddate),'updated_at'=>date('Y-m-dH:i:s',$文章->发布日期),]);如果($article->shorttitle){$meta=['goods_id'=>$aid,'meta_key'=>'short_title','meta_value'=>$article->shorttitle,];GoodsMeta::insert($meta);}$lastId=$article->id;$importLog[]=['type'=>'商品','oid'=>$article->id,'mid'=>$aid,'title'=>$article->title,'created_at'=>$date,'updated_at'=>$date,];}Dedecms::insertAll($importLog);存储::put("dede_goods_last_id",$lastId);return$this->result(true);}最后导入成功,并记录下来

最新推荐
猜你喜欢