yona-projects / yona-archive

Yona 데모 서버의 Yona 프로젝트 페이지 아카이브
0 stars 0 forks source link

Yobi에서 Yona 마이그레이션하는 방법 #30

Open doortts opened 8 years ago

doortts commented 8 years ago

@doortts (채수원) 님이 작성한 게시글입니다. ---

Yobi 에서 Yona로 Migration 하는 방법

Yona는 더 나은 환경을 제공하기 위해 기본 DB를 H2 Embedded에서 MariaDB로 교체했습니다. 관련해서는 'Yona가 MariaDB를 기본 DB로 사용하게 된 이유'항목을 참고해 주세요.

본 가이드는 Yobi의 마지막 공식 릴리즈인 v0.8.2에서 Yona 1.0으로 마이그레이션(Migration)하는 방법을 기술합니다. 만약 0.7.x 이하의 yobi를 사용하고 계시다면 우선 v0.8.2로 업그레이드를 먼저 해주세요 yobi 0.7x 에서 yobi 0.8.x 로 업그레이드 하기

전체적인 진행 방법에 대한 개요는 아래와 같습니다.

  1. yobi-data-export 버전을 내려 받습니다.
  2. yobi 0.8.2 에서 admin 유저로 설정화면에서 data 를 export
  3. yobi 접속을 차단하고 yobi 중단
  4. 새로 설치한 yona v1.0 디렉터리로 repo, uploads 폴더를 복사
  5. yona 를 실행시킨 다음 admin 유저로 data 를 import

상세내용

  1. yobi-data-export 버전을 내려 받습니다. yobi-data-export.zip 해당 파일은 v0.8.2에 export/import 기능이 추가된 버전입니다.
  2. yobi 0.8.2 에서 admin 유저로 설정화면에서 data 를 export
    • yobi-data-날짜.json 파일을 내려받게 됩니다. 1217306738593.png 543339801203.png
  3. yobi 접속을 차단하고 yobi 중단
    • 유닉스 계열일 경우 kill 명령으로 죽입니다. (kill -9를 사용하지 마세요!)
    • DB 데이터에 따라 kill 명령으로의 중단에 수분에서 최대 수십분가까이도 걸릴수도 있으니 차분히 기다려야 합니다.
  4. 새로 설치한 yona 디렉터리로 repo, uploads 폴더를 복사
  5. yona v1.0을 실행시킨 다음 admin 유저로 data 를 import 609457180545.png

끝.

--- attachments --- 1217306738593.png 543339801203.png 609457180545.png

doortts commented 8 years ago

@doortts (채수원) 님이 작성한 코멘트입니다. ---

만약 소스코드를 git 으로 내려 받아서 운영중인 프로젝트인 경우에는 아래 패치파일을 내려 받아서 Yobi 홈 디렉터리에서 git apply 로 패치를 적용합니다.

git apply 0001-add-exporting-and-importing-feature.patch

0001-add-exporting-and-importing-feature.patch

--- attachments --- 0001-add-exporting-and-importing-feature.patch

doortts commented 8 years ago

@lotiony (김가별) 님이 작성한 코멘트입니다. ---

안녕하세요? 기존 windows 서버에서 yobi 0.8.2를 이용하고 있었습니다. 이번에 yona로 업그레이드 하기 위해서 이 문서를 보면서 따라하고 있었는데요. yobi-data-export.zip으로 받은 파일을 기존의 yobi-0.8.2폴더에 모두 압축풀어 덮어씌운 후 yobi사이트를 새로고침하니 yobi의 실행이 종료되어 버렸습니다. 다시 running_Pid를 삭제하고 콘솔에서 bin\yobi.bat을 입력해 yobi를 재실행 하려 하니 제대로 가동이 되지 않네요.

C:\yobi\yobi-0.8.2>bin\yobi.bat Play server process ID is 22256 Oops, cannot start the server. @7197nfhf8: Cannot init the Global object at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globa lInstance$1.apply(Application.scala:59) at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globa lInstance$1.apply(Application.scala:53) at play.utils.Threads$.withContextClassLoader(Threads.scala:21) at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$globalIn stance(Application.scala:52) at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstanc e$lzycompute(Application.scala:402) at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstanc e(Application.scala:402) at play.api.WithDefaultGlobal$class.global(Application.scala:68) at play.api.DefaultApplication.global(Application.scala:402) at play.api.WithDefaultConfiguration$class.play$api$WithDefaultConfigura tion$$fullConfiguration(Application.scala:82) at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullCo nfiguration$lzycompute(Application.scala:402) at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullCo nfiguration(Application.scala:402) at play.api.WithDefaultConfiguration$class.configuration(Application.sca la:84) at play.api.DefaultApplication.configuration(Application.scala:402) at play.api.Application$class.$init$(Application.scala:274) at play.api.DefaultApplication.(Application.scala:402) at play.core.StaticApplication.(ApplicationProvider.scala:53) at play.core.server.NettyServer$.createServer(NettyServer.scala:244) at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala: 280) at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala: 275) at scala.Option.map(Option.scala:145) at play.core.server.NettyServer$.main(NettyServer.scala:275) at play.core.server.NettyServer.main(NettyServer.scala) Caused by: java.lang.UnsupportedClassVersionError: Global : Unsupported major.mi nor version 52.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$javaGlob al(Application.scala:31) at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal$lz ycompute(Application.scala:402) at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal(Ap plication.scala:402) at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globa lInstance$1.apply(Application.scala:54) ... 21 more

C:\yobi\yobi-0.8.2>

위와 같은데 0.8.2 data export버전으로 바꾸는 부분에 대해서는 별다른 설명이 없어서 그냥 덮어씌운건데 뭔가 잘못된건가요?

다시 기존의 0.8.2버전 yobi.zip을 덮어씌우고 실행하니 정상적으로 running 되었습니다.

doortts commented 8 years ago

@doortts (doortts) 님이 작성한 코멘트입니다. ---

@lotiony 사용하시는 java 버전이 어떻게 되시나요?

오류 핵심은 아래 메시지 인것 같습니다. Caused by: java.lang.UnsupportedClassVersionError: Global : Unsupported major.minor version 52.0

참고로 http://yona.io/ 페이지에서 사용그룹 채널에서 텔레그램으로 메시지 주시면 더 빠르게 피드백 받으실수 있습니다.

doortts commented 8 years ago

@lotiony (김가별) 님이 작성한 코멘트입니다. ---

@doortts 자바버전의 문제가 맞았었네요. 기존엔 java 7 update 80버전이었습니다. 백업과 무관하게 mariadb와 yona를 설치중이었고 그래서 java 8 update 101을 설치했습니다. 그리고 yobi0.8.2 data export버전을 가동해보니 정상 작동 하네요.

기존 0.8.2사용자도 0.8.2 data export를 사용하기 위해서는 java 8로 업데이트를 해야만 할 것 같습니다.

빠르게 답변주셔서 감사합니다^^