테터툴즈 1.0 RC2 마이그레이션 문제 해결 방안.

낮에 시도했던 테터툴즈 마이그레이션에 실패하고 백업으로 되돌린 다음, 저녁때 어째서 실패했을지를 알아보기로 했습니다. 가능하면 소스를 열어서 확인하지는 않으리라고 생각했었지만, 조금 아쉬운 느낌이어서 원인이라도 알아보자는 기분으로 소스를 조금 확인해 보기로 했습니다. 일단은 테터툴즈 버그 트랙에 날릴 작정이니 조금이나마 도움이 되었으면 좋겠습니다. 일단 이 방법은 ‘마이그레이션 메세지가 나타나지 않아 테터툴즈 DB를 백업했다가 복구하는 경우’를 해결할 수 있습니다.

많은 사용자들이 테이블 식별자를 맞게 입력했음에도 마이그레이션 메세지가 나타나지 않는 원인은 테터툴즈 1.0 셋업이 기존 버전의 테이블을 확인하는 코드에 예외상황이 있었기 때문입니다. 테터툴즈 1.0 셋업에서는 기존 버전의 테이블 확인을 위해 ‘DESCRIBE [table]‘한 결과를 문자열로 주욱 붙인 다음 md5() 한 결과를 이용해 기존 버전의 테이블 구조의 무결성을 확인하고 있습니다. 여기서 테이블 구조에 수정이 가해졌거나 한 경우라면 테이블의 해시값 – md5 – 이 달라서 마이그레이션 되지 않습니다. 그래서 정상적인 경우 해시코드가 ‘c00a… 가 되어야 하는데, 제 경우에는 데이터베이스에 별다른 수정을 가하지 않았음에도 기존 버전의 테이블 해시가 ’1760…’으로 나타났습니다. 그래서 마이그레이션의 대상이 되지 않았더군요.

테이블 무결성 확인 코드에 예외상황이 있습니다.


이 이상 확인해보지는 않았지만, 데이터베이스를 건드리지 않은 것이 확실한 테이블 구성의 해시코드를 수집해 코드에 추가하거나, 테이블과 테이블 구조를 직접 확인하는 방법으로 테이블 구조 무결성 확인 코드가 변경되어야 하지 않을까 싶습니다. 일단, ‘어쨌든 테터툴즈 1.0 RC2로 마이그레이션 하고 싶다!’는 경우에는 루트 디렉토리의 index.php의 1662번째 라인의 ‘c00a…’로 시작하는 문자열을 다음에 첨부한 파일을 계정에 넣고 돌렸을 때 나타나는 해시코드로 수정하면 마이그레이션이 가능해집니다. 단, 확실하게 기존 테이블에 수정을 가한 적이 없어야 하고, 기존 버전이 확실히 ‘테터툴즈 클래식 RC3′여야 합니다.

1984125343.xxx
테터앤 컴퍼니 개발자님들도 새해 복 많이 받으시고, 테스트에 참여하시는 분들도 새해 복 많이 받으시길 바랍니다. :)

8 Responses to 테터툴즈 1.0 RC2 마이그레이션 문제 해결 방안.

  1. 에서 says:

    멋지십니다. 바로 해봐야겠네요!

  2. 건호아빠 says:

    RC3 떴네요! 그런데 업그레이드/마이그레이션 하려다가 궁금한것~ (RC2로 하려다 안되었던것들)
    태터클래식 RC3까지 아무 문제없이 잘 올라왔어요.
    예전에 B2 근처에서 다중사용자 초청 등을 하려면 루트에 설치해야 한다고 하는데…. 문제는 제가 태터를 처음 설치할 때 일부러 blog란 폴더 만들어서 넣었거든요.
    그런데 태터 1.0RC을 루트에 넣으려니 그 내부파일 중 blog란 폴더가 또 있네요….
    일단은 파일 index.php만 겹치는거 덮어쓰고 나머지는 다 한 폴더에 (클래식 파일/폴더전부 + 1.0RC blog폴더 안의 것 전부) 넣고서 마이그레이션 해보려고 합니다. 다른 방법 있나요? 이렇게 했더니 “데이터베이스 테이블” 항목에서 ’1.0 Classic 버전의 데이터를 마이그레이션합니다.’ 라는 항목이 안나오고 그냥 ‘OK’ 라고만 보이는 문제 발생

    • 밀피유 says:

      다중사용자나 초청기능을 사용하거나, 사용하지 않는다고 하는 것들은 루트에 설치하는 것과는 관계가 없는 듯 합니다. 단지 하위 디렉토리에 설치하면 각각의 블로그 주소가 더 길어지기는 하겠지요. 제 경우라면 기존에는 neoocean.net/blog/ 로 끝났지만 하위 디렉토리에 설치하면 neoocean.net/blog/neoocean/ 같은 식이 되는거지요.

      테터툴즈 내부에 또 있는 blog 디렉토리는 별로 신경쓰지 않으셔도 됩니다. 리라이트 모드가 알아서 blog 아래의 파일들을 사용해 주소를 만들어주니 특별히 파일을 덮거나 하실 필요는 없습니다.

      나중에 게시물을 하나 만들어 이야기하기는 하겠지만, 제 마이그레이션 계획은 일단 기존 블로그인 neoocean.net/blog/ 를 그대로 두고, 다른 디렉토리에서 마이그레이션을 진행한 다음, neoocean.net/blog/ 의 이름을 다른 것으로 바꾸고, 마이그레이션 한 디렉토리 이름을 neoocean.net/blog/ 로 바꾼 다음 .htaccess 파일을 수정해서 마이그레이션을 마칠 예정입니다. 일단 http://neoocean.net/blog_rc3p1/neoocean/ 이곳에 마이그레이션 실험중인 블로그가 있으니 둘러보세요.

    • 건호아빠 says:

      밀피유님 감사, 일단 너무 혼란스러워 클래식RC에 남아있을겁니다. 차차 마이그레이션이 지원되거나 밀피유님 작전따라 하거나 등등….
      그런데 PDF만드는 플러그인은 또 만드실거죠?

    • 엘리타쥬 says:

      그러고보니 PDF 플러그인으로 제가 밀피유님을 알게 되었는데. 헤헤
      1.0으로 만드시면 갈아타는 수 밖엔 없군요. :)

    • 밀피유 says:

      건호아빠님: 한 2년전이었다면 ‘데이터 유실도 불사해주겠어!!’ 라는 자세로 뛰어들었을 것 같은데, 이제는 그러기도 쉽지가 않네요 ;_; 에.. 일단 마이그레이터가 나오기 전가지는 전부터 생각하고 있던 1.0용의 검색 스크립트를 짤 생각입니다. 지금은 http://neoocean.net/search/ 에 구글을 이용해서 블로그 검색을 넣고 있는데, 불만이 많아서, 1.0 구조도 익힐 겸 해서 검색을 만들어 보면 재미있을 듯 합니다.

      이전에 PDF는 지금 와서 보면 그게 어떻게 정상적으로 돌아가는 곳이 있을지가 신기할 정도로 엉성하게 만들어진 스크립트였습니다. 이번에도 비슷한걸 만들어 보고 싶은 생각은 있지만, 꼭 PDF 변환기를 생각하고 있는 것은 아닙니다. 또, 제 실력이 모자라서 테터툴즈 1.0의 관리자 인터페이스에 대량으로 도입되어 있는 AJAX 덕분에 관리자모드 플러그인의 접근장벽이 상당히 높아서, PDF는 좀 불투명합니다. =_=

      엘리타쥬님: 사실상 지원이 사라진 클래식 버전은 이제 어떤 툴로든 옮겨야 할 것은 확실한데, 마이그레이터가 나오기 전가지는 다른 툴로 이전할 가능성도 일단은 열어 놓고 있어요. 아마도 클래식 버전을 위한 무언가를 만들지는 않을 듯 하고, 만든다면 마이그레이터가 만들어진 다음 1.0용으로 만들지 않을까 싶어요.

    • 건호아빠 says:

      밀피유님, 감사~ 댓글알리미 있으면서도 댓글 적어주신거 모른척…. 하다가 찔려서 들렸어요. 결국 클래식RC3을 2개 설치, 사용합니다. 1.0RC를 루트에 설치 초청기능도 쓰고 첨단기능도 써볼라고 했는데…. 시간이 약이죠?

      이리 보니, 클래식에 남아계신 분들이 아직 꽤 있어요…. 클래식 골격에 1.0의 편집기 등 인터페이스만 있어도 좋을텐데~

      그리고 RSS리더는 제목이 주루룩 나오는 클래식용 이웃블로그 만한게 없네요. 웹리더나 설치형이나…

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>