Ticket #755 (closed enhancement: fixed)

Opened 10 months ago

Last modified 9 months ago

댓글 알리미 백업

Reported by: inureyes Owned by: daybreaker
Priority: major Milestone: 1.6
Component: Libraries Version: 1.6
Keywords: post,comment,notifier Cc:
Release:

Description

개요

  • 댓글 알리미 백업을 지원한다.
  • TTXML이 범용 포맷으로 가면서 extensible하게 정의되기 때문에 extend specification으로 정의해도 무리가 없다.

Change History

Changed 10 months ago by inureyes

날붹사마께 1.5 이후의 component 생김새를 연구할 기회를 드립니다~ 쉽게 접근하실 수 있을겁니다.

수정해야 할 부분들은

  • component/Textcube.Data.CommentNotifier.php 를 추가.
    • (얘는 Textcube.Data.Comment.php를 약간 변용해서 쓰시어요)
  • blog/owner/data/import/index.php
  • blog/owner/data/export/index.php

가 되겠습니다. ~

Changed 9 months ago by daybreaker

  • status changed from new to assigned

Changed 9 months ago by daybreaker

  • [4916], [4917]에서 이를 위한 컴포넌트 클래스를 추가함.

Changed 9 months ago by daybreaker

* 일단 commentsNotified는 백업이 잘 되는 상태까지 작업. commentsNotifiedSiteInfo 백업이 안 되는 문제 해결 및 복원 테스트 필요.

Changed 9 months ago by inureyes

몇가지 이야기입니다

  • 단일 사용자 모드에서는 문제가 없지만 다중 사용자 모드에서의 백업 및 복원은 문제가 있습니다. CommentsNotified의 사이트 id와 commentsNotifiedSiteInfo의 id등이 복원시 원래 다른 사용자가 만든 값과 겹칠 수가 있기 때문입니다.
  • 따라서 이렇게 구현을 수정하는 것이 낫겠습니다.
    • commentsNotified를 백업할 때 사이트 정보를 commentsNotifiedSiteInfo를 가리키는 id 대신, commentsNotifiedSiteInfo의 블로그 주소를 참조하여 '주소'를 백업합니다.
    • commentsNotified 복원시, 현재 복원하는 블로그 서비스의 commentsNotifiedSiteInfo를 참조하여 같은 블로그 주소를 갖는 정보가 있을 경우 그 열의 id값으로 siteId값을 복원합니다. 존재하지 않는 경우, commentsNotifiedSiteInfo에 해당 주소값만을 먼저 삽입하고 (다른 값은 비워놓고) id를 얻은 후에 그걸 기준으로 복원하는 commentsNotified의 siteId를 지정합니다.
    • commentsSiteInfo 복원시, 이미 같은 주소를 가진 열이 통째로 존재할 경우 그 열은 복원하지 않고 뛰어 넘습니다. (이 경우에도 modified값이 만약 백업파일의 값이 더 높다면 현재의 modified값을 그 값으로 업데이트 합니다) 만약 같은 주소를 가진 열이 존재하지만 id와 주소만 있는 경우 (위의 commentsNotified에서 집어 넣은 경우) 그 열은 백업 파일의 값으로 업데이트 합니다.

복잡하죠?

Changed 9 months ago by daybreaker

무슨 얘기인지 알겠습니다. 작업 들어갑니다~

Changed 9 months ago by inureyes

추가로, 백업시에도 현재 블로그에 적용되는 commentsSiteInfo의 정보만 백업해야 하겠습니다. :)

Changed 9 months ago by daybreaker

  • status changed from assigned to closed
  • resolution set to fixed

구현 완료하였습니다. 단일블로그에서는 테스트해보았으나 다중 블로그는 아직 테스트해보지 않았습니다. 추가 테스트가 더 필요합니다.

Note: See TracTickets for help on using tickets.