jhleem / webhard star
2022-01-10
#10 yona 셋팅 및 이관
2022-01-10
Tasks

yona 설치 (1.14.0 H2 버전 기준)#

선행#

환경변수에 JAVA_HOME 설정

다운로드#

yona-1.14.0.7z

압축 해제 및 기본 설정#

기본 경로 c:\yona\
수정 시 yona-run.bat 파일 수정

:: yona 데이터 경로
SET YONA_DATA=**C:\yona\yona-data**
:: yona 서버 설정(포트, 메모리)
SET JAVA_OPTS=-DapplyEvolutions.default=true -Dhttp.port=7070 -Xmx4096m -Xms4096m
:: 기존 pid 삭제(yona 강제 종료 시 pid가 삭제되지 않아 오류 발생)
del /f /q yona-1.14.0\RUNNING_PID
:: yona.bat 실행
yona-1.14.0\bin\yona.bat

Google Analytics 비 활성화#

yona-data\application.conf 수정 필요
application.send.yona.usage = false

접속 확인 및 관리자 계정 설정(최초 1회)#

http://127.0.0.1:7070
576-20221-10-1641-53.png

프로젝트 이관#

  1. 프로젝트의 각종 게시판 이관
  2. svn 소스 이관

1. 게시판 이관#

※ 참고 사이트 (https://github.com/yona-projects/yona-export)

npm 명령어 사용을 위한 nodejs 설치 (https://nodejs.org/en/)#

node-v16.13.1-x64.7z

yona-export 파일 다운로드 및 압축 해제 (예제는 c:\yona-export-master)#

yona-export-master.zip

명령 프롬프트(cmd) 실행 이후 명령어 실행#

npm install
814-20221-10-1712-36.png

Export / Import 프로젝트 설정#

config.json 파일 수정

export default {
  EXPORT_BASE_DIR: 'exported', // local pc 디렉터리
  ATTACHMENTS_DIR: 'files', // EXPORT_BASE_DIR 아래 첨부파일이 생기는 곳
  YONA: {
    FROM: {  // Export 할 Yona 인스턴스
      SERVER: 'http://127.0.0.1:7070',
      USER_TOKEN: 'QvF2KXgVVxY+fMDMPHfKwcAB4KjuDDaZO7AOlWIITKI=',
      OWNER_NAME: 'jhleem',
      PROJECT_NAME: 'ctm',
      ROOT_CONTEXT: '' // 따로 application root를 설정한 경우
    },
    TO: {  // Import 시킬 Yona 인스턴스
      SERVER: 'http://127.0.0.1:9090',
      USER_TOKEN: 'ZDWnWg/1b9Wh53jWAMJbTxaXZKUBFOz1EyhBDeTaaM0=',
      OWNER_NAME: 'jhleem', // 관리자 권한 필요
      PROJECT_NAME: 'ctm_trans',
      ROOT_CONTEXT: ''
    }
  }
};

USER_TOKEN은 yona 사이트의 사용자 설정 -> 사용자토큰 에서 확인 가능
126-20221-10-1715-59.png
TO의 OWNER_NAME는 관리자 권한이 필요하며 yona의 관리자로 접속 후 해당 사용자를 사이트 어드민으로 지정 해 준다.
974-20221-10-1731-30.png

Project Export 실행#

npm start -- export

125-20221-10-1725-5.png

export 파일 생성 확인
285-20221-10-1727-1.png

※※※ 완전 중요 ※※※#

export 데이터 중 사용자 데이터(authors, members)는 import될 사용자와 id, 이름, email이 동일해야 중복으로 등록이 안된다.
따라서 (프로젝트명).json 파일을 열어 "authors":[], "members":[] 로 데이터를 수정해야 한다.
혹시 사용자 데이터가 중복으로 들어갔다면 해당 계정은 로그인이 되지 않고 에러가 발생한다. 그럴 경우 관리자로 로그인을 한 뒤 사이트 관리 메뉴에서 추가된 사용자를 삭제 후 razorsql 툴을 사용하여 yona.h2.db파일을 연 뒤 N4USER 테이블에서 해당 사용자를 DELETE해 준다.
import를 완료 한 후 관리자 권한이 있는 계정으로 접속하여 프로젝트의 사용자 권한을 다시 등록 한다.

razorsql9_4_10_windows_x64.zip

Project Import 실행#

npm start -- import

957-20221-10-1735-6.png

※ 아래와 같이 403 에러 발생 시 config.json 파일의 TO의 OWNER_NAME의 권한을 추가해 준다.
613-20221-10-1733-7.png

2. svn 소스 이관 (잘 안된다 그냥 소스 다시 커밋하는게 나은듯 정 필요할 시에는 yona-data폴더의 repo안의 db폴더 복사에서 넣자)#

※ 참고 사이트 (https://github.com/yona-projects/yona/issues/78)

svnsync 명령어 사용을 위한 svn 다운로드 (https://sliksvn.com/download/)#

Slik-Subversion-1.14.1-x64.zip

주의 사항#

게시판 이관 작업이 불필요하여 svn 소스만 이관 시에는 import될 yona 서버에 프로젝트를 먼저 생성해야 한다.
게시판 이관 작업 때 프로젝트가 없다면 자동으로 생성해주기 때문이다.

초기화 "svnsync init"#

svnsync init file:///(import될 서버의 svn 폴더 경로) (복사 될 서버의 svn 접속 주소)

svnsync init http://127.0.0.1:9090/svn/jhleem/ctm_trans3 http://127.0.0.1:7070/svn/jhleem/ctm --source-username=jhleem --source-password=1234 --sync-username=jhleem --sync-password=1234
// --source-username=원본서버계정 --source-password=원본서버비밀번호 --sync-username=복사될서버계정 --sync-password=복사될서버비밀번호

저장소 복사 "svnsync sync"#

svnsync sync file:///(import될 서버의 svn 폴더 경로)

svnsync sync http://127.0.0.1:9090/svn/jhleem/ctm_trans3 --source-username=jhleem --source-password=1234 --sync-username=jhleem --sync-password=1234
Comment 0

Add a comment