대량 내보내기 도구

Mattermost v11.11번역일: 2026-09-02원본 보기

한 Mattermost 인스턴스의 데이터를 다른 인스턴스로 옮기는 작업은 대량 적재 기능을 사용해 데이터를 JSONL 파일로 내보내는 것에서 시작합니다. 개념 증명(PoC)용 서버를 만든 뒤 운영용 서버를 별도로 구축했고, 이제 PoC 인스턴스의 기록을 유지하고 싶을 때 이 도구가 유용합니다.

내보낼 수 있는 데이터 유형은 다음과 같습니다.

  • 팀
  • 채널(공개, 비공개, 다이렉트)
  • 메시지(일반 메시지, 답글이 아닌 메시지, 다이렉트 메시지)
  • 스레드 대화와 메시지 답글
  • 메시지 반응
  • 사용자
  • 고정 메시지와 저장한 메시지를 포함한 사용자 환경 설정
  • 사용자의 팀 멤버십
  • 사용자의 채널 멤버십
  • 사용자의 알림 환경 설정
  • 커스텀 이모지
  • 읽음/읽지 않음 상태를 포함한 다이렉트 메시지 및 그룹 메시지 채널
  • 역할
  • 권한 스킴
  • 봇 사용자
참고

서버의 특정 영역만 내보내기, 추가 유형의 게시물 내보내기, 파일 첨부, 웹훅, 봇 메시지 같은 데이터 유형에 대한 설정은 아직 지원되지 않습니다. 삭제된 객체도 아직 지원되지 않습니다.

내보내기 도구에 속성이나 객체를 추가로 요청하려면 기능 아이디어 포럼에 기능 요청을 등록해 주세요.

데이터 대량 내보내기

mmctl 사용

  1. 첨부 파일을 포함한 전체 내보내기 파일을 생성하려면 mmctl export create -- attachments 명령을 실행합니다. 자세한 내용은 Mattermost 데이터 마이그레이션 문서를 참고하세요.
  2. 작업이 실행되는 동안 mmctl export job show 명령으로 상태를 확인할 수 있습니다.
  3. 내보내기 작업 상태가 성공으로 표시되면 다음을 수행합니다.

    1. mmctl export list 명령을 실행해 완료된 내보내기 파일의 이름을 확인합니다.
    2. mmctl export download 명령을 실행해 내보내기 파일을 로컬 컴퓨터로 다운로드합니다.

CLI 사용

참고

Mattermost v6.0부터 이 명령은 더 이상 사용되지 않으며, Mattermost에서 데이터를 내보내는 지원 방식은 mmctl export 명령입니다.

내보내기 명령은 CLI에서 실행됩니다. 이 명령은 Mattermost 데이터베이스의 모든 정보에 접근할 수 있는 권한을 가집니다.

내보내기 명령을 실행하려면 다음을 수행합니다.

  1. Mattermost 서버가 설치된 디렉터리로 이동합니다. Mattermost를 기본값으로 설치했다면 디렉터리는 /opt/mattermost입니다.
  2. 다음 명령을 실행해 서버의 모든 팀에서 데이터를 추출합니다. 파일 이름을 변경할 수 있고, 절대 경로나 상대 경로를 지정해 파일을 내보낼 위치를 정할 수 있습니다.

    sudo -u mattermost bin/mattermost export bulk file.json --all-teams
    sudo -u mattermost bin/mattermost export bulk /home/user/bulk_data.json --all-teams
  3. 지정한 위치에서 파일을 가져옵니다.

모든 Mattermost 대량 내보내기 데이터 파일은 첫 줄이 Version 객체로 시작합니다. 이 값은 내보낸 데이터와 호환되는 Mattermost 대량 가져오기 파일 형식의 버전을 나타냅니다.

Version 객체

필드 이름타입설명
typestring문자열 "version"입니다.
versionnumber숫자 1입니다.
infoobject선택적인 VersionInfo 객체입니다.

VersionInfo 객체

필드 이름타입설명
generatorstring이 내보내기를 생성한 도구의 이름입니다. 널리 알려진 도구는 다음과 같습니다.
Mattermost 서버는 "mattermost-server".
Slack 내보내기 변환기 "mmetl"은 "mmetl".
versionstring이 내보내기를 생성한 도구의 버전입니다. 공백으로 구분된 여러 버전 정보가 들어 있을 수 있습니다. 첫 번째 값은 시맨틱 버전이어야 합니다.
"7.6.0 (29bb1e53ef5a439c73065f47de2972f9bbcb09a4, enterprise: true)"가 그런 버전 문자열의 예입니다.
createdstring파일 생성 타임스탬프입니다. RFC 3339 타임스탬프 형식이어야 합니다. 나노초 부분은 선택 사항입니다.
"2022-11-22T16:40:51.019582328+01:00"
additionalany생성 도구가 파일 헤더에 포함하려는 추가 정보입니다. 생략할 수 있습니다. 각 줄의 크기는 수 MiB로 제한된다는 점에 유의하세요.

Team 객체

필드 이름타입설명
namestring팀 이름입니다.
display_namestring팀의 표시 이름입니다.
typestring팀의 유형입니다. 다음 값 중 하나를 가집니다.
공개 팀은 "O"
초대 전용 팀은 "I".
descriptionstring팀 설명입니다.
allow_open_invitebool공개 초대를 허용할지 여부입니다. 다음 값 중 하나를 가집니다.
"true"
"false"
schemestring이 팀에 적용되는 권한 스킴의 이름입니다.

Channel 객체

필드 이름타입설명
teamstring이 채널이 속한 팀의 이름입니다.
namestring채널의 이름입니다.
display_namestring채널의 표시 이름입니다.
typestring채널의 유형입니다. 다음 값 중 하나를 가집니다.
공개 채널은 "O".
비공개 채널은 "P".
headerstring채널 헤더입니다.
purposestring채널 목적입니다.
schemestring이 팀에 적용되는 권한 스킴의 이름입니다.

User 객체

필드 이름타입설명
usernamestring사용자의 사용자 이름입니다. 사용자의 고유 식별자입니다.
emailstring사용자의 이메일 주소입니다.
auth_servicestring이 사용자 계정에 사용된 인증 서비스입니다. 사용자/비밀번호 인증에서는 이 필드가 없습니다.
"gitlab" - GitLab 인증.
"ldap" - LDAP 인증(Enterprise 및 Professional)
"saml" - 일반 SAML 기반 인증(Enterprise)
"google" - Google OAuth 인증(Enterprise)
"entra id" - Microsoft Entra ID OAuth 인증(Enterprise)
auth_datastringauth_service를 사용하는 경우의 인증 데이터입니다. 값은 지정된 auth_service에 따라 달라집니다.
각 auth_service별로 다음 필드에서 데이터를 가져옵니다.
"gitlab" - GitLab 인증 데이터에 제공된 Id 속성의 값.
"ldap" - Mattermost LDAP 구성에서 "ID Attribute"로 지정한 LDAP 속성의 값.
"saml" - SAML 이메일 주소 속성의 값.
"google" - OAuth Id 속성의 값.
"office365" - OAuth Id 속성의 값.
nicknamestring사용자의 별명입니다.
first_namestring사용자의 이름입니다.
last_namestring사용자의 성입니다.
positionstring사용자의 직책입니다.
rolesstring사용자의 역할입니다.
localestring사용자의 지역화 설정입니다.
use_markdown_previewbool사용자가 메시지 입력창에서 마크다운 미리보기를 활성화했다면 "true"입니다.
use_formattingbool사용자가 링크, 이모지, 텍스트 스타일, 줄 바꿈에 대한 게시물 서식을 활성화했다면 "true"입니다.
show_unread_sectionstring사용자가 채널 사이드바 상단에 읽지 않은 메시지 표시를 활성화했다면 "true"입니다.
themestring사용자의 테마입니다. Mattermost 테마 문자열 형식입니다.
military_timestring사용자가 24시간제를 활성화했다면 "true", 12시간제를 사용한다면 "false"입니다.
collapse_previewsstring사용자가 기본적으로 링크 미리보기를 접는다면 "true", 기본적으로 펼친다면 "false"입니다.
message_displaystring사용자가 선호하는 메시지 표시 스타일입니다. 표준 스타일이면 "clean", 간결한 스타일이면 "compact"입니다.
channel_display_modestring사용자가 채널 메시지를 화면 전체 너비로 표시하면 "full", 고정 너비의 가운데 정렬 블록을 사용하면 "centered"입니다.
tutorial_stepstring"1", "2", "3"은 사용자가 시작할 튜토리얼 단계를 나타냅니다. "999"는 튜토리얼을 건너뜁니다.
email_intervalstring대량 가져오기 중 사용할 이메일 배치 전송 간격입니다.
delete_atint64사용자가 비활성화된 시점의 타임스탬프입니다.
teamsarray사용자가 소속된 팀입니다. UserTeamMembership 객체의 배열입니다.
notify_propsobjectUserNotifyProps 객체로 정의되는 사용자의 알림 환경 설정입니다.

UserNotifyProps 객체

이 객체는 User 객체의 구성 요소입니다.

필드 이름타입설명
desktopstring데스크톱 알림 전송에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"all" - 모든 활동에 대해.
"mention" - 멘션에 대해서만.
"none" - 사용하지 않음.
desktop_soundstring데스크톱 알림음 재생 여부에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"true" - 소리를 재생합니다.
"false" - 소리를 재생하지 않습니다.
emailstring이메일 알림에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"true" - 이메일 알림을 즉시 보냅니다.
"false" - 이메일 알림을 보내지 않습니다.
mobilestring모바일 푸시 알림 전송에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"all" - 모든 활동에 대해.
"mention" - 멘션에 대해서만.
"none" - 사용하지 않음.
mobile_push_statusstring푸시 알림이 발생하는 시점에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"online" - 온라인, 자리 비움, 오프라인일 때.
"away" - 자리 비움 또는 오프라인일 때.
"offline" - 오프라인일 때.
channelstring@all, @channel, @here가 멘션을 발생시키는지에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"true" - 멘션이 발생합니다.
"false" - 멘션이 발생하지 않습니다.
commentsstring답글 멘션 알림에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"any" - 사용자가 시작했거나 참여한 답글 스레드의 메시지에 알림을 발생시킵니다.
"root" - 사용자가 시작한 스레드의 메시지에 알림을 발생시킵니다.
"never" - 사용자가 멘션되지 않는 한 답글 스레드의 메시지에 알림을 발생시키지 않습니다.
mention_keysstring멘션을 발생시키는 대소문자 구분 없는 사용자 지정 단어에 대한 환경 설정입니다. 단어는 쉼표로 구분합니다.

UserTeamMembership 객체

필드 이름타입설명
namestring이 사용자가 소속된 팀의 이름입니다.
rolesstring이 팀 안에서 사용자가 가지는 역할입니다.
themestring이 팀에 대한 사용자의 테마입니다. Mattermost 테마 문자열 형식입니다.
channelsarray이 팀 안에서 사용자가 속한 채널입니다. UserChannelMembership 객체의 배열로 표시됩니다.

UserChannelMembership 객체

필드 이름타입설명
namestring이 사용자가 속한, 상위 팀 안의 채널 이름입니다.
rolesstring이 채널 안에서 사용자가 가지는 역할입니다.
notify_propsobjectChannelNotifyProps 객체로 정의되는, 이 채널에서 이 사용자의 알림 환경 설정입니다.
favoriteboolean이 사용자가 해당 채널을 즐겨찾기로 표시했는지 여부입니다. 다음 값 중 하나를 가집니다.
"true" - 예.
"false" - 아니요.
mention_countint64ChannelMentionCount 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.
mention_count_rootint64ChannelMentionCountRoot 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.
urgent_mention_countint64UrgendMentionCount 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.
msg_countint64MsgCount 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.
msg_count_rootint64MsgCountRoot 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.
last_viewed_atint64LastViewedAt 객체로 정의되는, 이 채널에서 이 사용자의 멘션 환경 설정입니다.

ChannelNotifyProps 객체

이 객체는 ChannelMembership 객체의 구성 요소입니다.

필드 이름타입설명
desktopstring데스크톱 알림 전송에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"default" - 전역 기본값.
"all" - 모든 활동에 대해.
"mention" - 멘션에 대해서만.
"none" - 사용하지 않음.
mobilestring모바일 알림 전송에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"default" - 전역 기본값.
"all" - 모든 활동에 대해.
"mention" - 멘션에 대해서만.
"none" - 사용하지 않음.
mark_unreadstring채널을 읽지 않음으로 표시하는 방식에 대한 환경 설정입니다. 다음 값 중 하나를 가집니다.
"all" - 모든 읽지 않은 메시지에 대해.
"mention" - 멘션에 대해서만.

Post 객체

필드 이름타입설명
teamstring이 게시물이 속한 팀의 이름입니다.
channelstring이 게시물이 속한 채널의 이름입니다.
userstring이 게시물을 작성한 사용자의 사용자 이름입니다.
messagestring게시물에 담긴 메시지입니다.
propsobject게시물의 props입니다. 연동 기능과 봇 게시물이 사용하는 추가 서식 정보가 들어 있습니다. 자세한 설명은 메시지 첨부 문서를 참고하세요.
create_atint게시물의 타임스탬프입니다. Unix epoch 이후 밀리초 단위입니다.
reactionsarray이 게시물에 달린 이모지 반응입니다. Reaction 객체의 배열입니다.

Reply 객체

필드 이름타입설명
userstring이 답글을 작성한 사용자의 사용자 이름입니다.
messagestring답글에 담긴 메시지입니다.
create_atint답글의 타임스탬프입니다. Unix epoch 이후 밀리초 단위입니다.

Reaction 객체

이 객체는 Post 객체의 구성 요소입니다.

필드 이름타입설명
userstring이 답글을 작성한 사용자의 사용자 이름입니다.
emoji_namestring반응에 사용된 이모지입니다.
create_atint답글의 타임스탬프입니다. Unix epoch 이후 밀리초 단위입니다.

Emoji 객체

필드 이름타입설명
namestring이모지 이름입니다.
imagestring이 이모지의 이미지 파일 경로입니다(절대 경로 또는 현재 작업 디렉터리 기준 상대 경로).

DirectChannel 객체

필드 이름타입설명
membersarray채널 멤버 목록입니다.
favorited_byarray해당 다이렉트 채널을 즐겨찾기로 등록한 채널 멤버 목록입니다.
headerstring채널 헤더입니다.

DirectPost 객체

필드 이름타입설명
userstring이 게시물을 작성한 사용자의 사용자 이름입니다.
messagestring게시물에 담긴 메시지입니다.
create_atint게시물의 타임스탬프입니다. Unix epoch 이후 밀리초 단위입니다.