대량 내보내기 데이터
Mattermost v12.0요약
하나의 Mattermost 인스턴스에서 다른 인스턴스로 데이터를 이동하는 작업은 대량 가져오기 데이터에 사용하는 것과 같은 형식의 JSONL 파일로 데이터를 내보내는 것으로 시작합니다. 다음 데이터 유형을 내보낼 수 있습니다.
사용 가능 플랜: Entry, Professional, Enterprise, Enterprise Advanced
하나의 Mattermost 인스턴스에서 다른 인스턴스로 데이터를 이동하는 작업은 대량 가져오기 데이터에 사용하는 것과 같은 형식의 JSONL 파일로 데이터를 내보내는 것으로 시작합니다. 개념 증명을 위해 서버를 만들었고 프로덕션 사용을 위한 다른 서버를 만든 뒤, 개념 증명 인스턴스의 이력을 유지하고 싶을 때 유용합니다.
다음 데이터 유형을 내보낼 수 있습니다.
- 팀
- 채널 (공개, 비공개 및 다이렉트)
- 메시지 (일반, 비답글 및 다이렉트 메시지)
- 스레드 토론 및 메시지 답글
- 메시지 반응
- 사용자
- 사용자 기본 설정 (고정 및 저장된 메시지 포함)
- 사용자의 팀 멤버십
- 사용자의 채널 멤버십
- 사용자의 알림 기본 설정
- 커스텀 이모지
- 다이렉트 메시지 및 그룹 메시지 채널 (읽음/읽지 않음 상태 포함)
- 역할
- 권한 스킴
- 봇 사용자
서버의 특정 영역 내보내기, 추가 유형의 게시물 내보내기, 파일 첨부, 웹훅 및 봇 메시지 내보내기와 같은 데이터 유형 구성은 아직 지원되지 않습니다. 삭제된 객체도 아직 지원되지 않습니다.
내보내기 도구에 추가 속성 또는 객체를 넣어 달라는 요청은 기능 아이디어 포럼에 기능 요청으로 등록하세요.
대량 내보내기 데이터#
- mmctl export create -- attachments 명령을 실행하여 첨부 파일을 포함한 전체 내보내기 파일을 생성합니다. 자세한 내용은 Mattermost 데이터 마이그레이션 문서를 참조하세요.
- 작업이 실행되는 동안 mmctl export job show 명령을 실행하여 상태를 확인할 수 있습니다.
- 내보내기 작업 상태가 성공이면 다음을 수행합니다.
- mmctl export list 명령을 실행하여 완료된 내보내기 파일의 이름을 확인합니다.
- mmctl export download 명령을 실행하여 내보내기 파일을 로컬 머신으로 다운로드합니다.
Mattermost v6.0부터 이 명령은 더 이상 사용되지 않으며, Mattermost에서 데이터를 내보내는 지원 방법으로 mmctl export 명령을 사용합니다.
내보내기 명령은 CLI에서 실행합니다. 이 명령은 Mattermost 데이터베이스의 모든 정보에 접근할 수 있는 권한이 있습니다.
내보내기 명령을 실행하려면 다음을 수행합니다.
-
Mattermost 서버가 설치된 디렉터리로 이동합니다. Mattermost 기본 설치에서 이 디렉터리는
/opt/mattermost입니다. -
다음 명령을 실행하여 서버의 모든 팀에서 데이터를 추출합니다. 파일 이름을 변경하고 절대 경로 또는 상대 경로를 지정하여 파일을 내보낼 위치를 정할 수 있습니다.
sudo -u mattermost bin/mattermost export bulk file.json --all-teamssudo -u mattermost bin/mattermost export bulk /home/user/bulk_data.json --all-teams -
지정한 위치에서 파일을 가져옵니다.
모든 Mattermost 대량 내보내기 데이터 파일은 첫 번째 줄이 Version 객체로 시작합니다. 이 객체는 내보낸 데이터와 호환되는 Mattermost 대량 가져오기 파일 형식의 버전을 나타냅니다.
Version 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| type | string | 문자열 "version" |
| version | number | 숫자 1. |
| info | object | 선택 사항인 VersionInfo 객체 |
VersionInfo 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| generator | string | 이 내보내기를 생성한 도구의 이름. 잘 알려진 도구는 다음과 같습니다. "mattermost-server" - Mattermost Server. "mmetl" - Slack 내보내기 변환기 "mmetl". |
| version | string | 이 내보내기를 생성한 도구의 버전. 공백으로 구분된 여러 버전 정보를 포함할 수 있습니다. 첫 번째 값은 시맨틱 버전이어야 합니다. "7.6.0 (29bb1e53ef5a439c73065f47de2972f9bbcb09a4, enterprise: true)"는 이러한 버전 문자열의 예입니다. |
| created | string | 파일 생성 타임스탬프. RFC 3339 타임스탬프 형식이어야 합니다. 나노초 부분은 선택 사항입니다. "2022-11-22T16:40:51.019582328+01:00" |
| additional | any | 생성기가 파일 헤더에 포함하려는 추가 정보. 생략할 수 있습니다. 각 줄의 크기는 몇 MiB로 제한됩니다. |
Team 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| name | string | 팀 이름. |
| display_name | string | 팀의 표시 이름. |
| type | string | 팀 유형. 다음 값 중 하나입니다. "O" - 공개 팀 "I" - 초대 전용 팀. |
| description | string | 팀 설명. |
| allow_open_invite | bool | 공개 초대를 허용할지 여부. 다음 값 중 하나입니다. "true" "false" |
| scheme | string | 이 팀에 적용되는 권한 스킴의 이름. |
Channel 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| team | string | 이 채널이 속한 팀의 이름. |
| name | string | 채널 이름. |
| display_name | string | 채널의 표시 이름. |
| type | string | 채널 유형. 다음 값 중 하나입니다. "O" - 공개 채널. "P" - 비공개 채널. |
| header | string | 채널 헤더. |
| purpose | string | 채널 목적. |
| scheme | string | 이 팀에 적용되는 권한 스킴의 이름. |
User 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| username | string | 사용자의 사용자 이름. 사용자의 고유 식별자입니다. |
| string | 사용자의 이메일 주소. | |
| auth_service | string | 이 사용자 계정에 사용되는 인증 서비스. 사용자/비밀번호 인증에서는 이 필드가 없습니다. "gitlab" - GitLab 인증. "ldap" - LDAP 인증 (Enterprise 및 Professional) "saml" - 일반 SAML 기반 인증 (Enterprise) "google" - Google OAuth 인증 (Enterprise) "entra id" - Microsoft Entra ID OAuth 인증 (Enterprise) |
| auth_data | string | auth_service를 사용하는 경우의 인증 데이터. 값은 지정된 auth_service에 따라 달라집니다. 데이터는 각 auth_service에 대해 다음 필드에서 가져옵니다. "gitlab" - GitLab 인증 데이터에서 제공된 Id 속성의 값. "ldap" - Mattermost LDAP 구성에서 "ID Attribute"로 지정된 LDAP 속성의 값. "saml" - SAML 이메일 주소 속성의 값. "google" - OAuth Id 속성의 값. "office365" - OAuth Id 속성의 값. |
| nickname | string | 사용자의 닉네임. |
| first_name | string | 사용자의 이름. |
| last_name | string | 사용자의 성. |
| position | string | 사용자의 직위. |
| roles | string | 사용자의 역할. |
| locale | string | 사용자의 로컬라이제이션 구성. |
| use_markdown_preview | bool | 사용자가 메시지 입력 상자에서 마크다운 미리 보기를 활성화한 경우 "true". |
| use_formatting | bool | 사용자가 링크, 이모지, 텍스트 스타일 및 줄 바꿈에 대한 게시물 포맷팅을 활성화한 경우 "true". |
| show_unread_section | string | 사용자가 채널 사이드바 상단에 읽지 않은 메시지를 표시하도록 활성화한 경우 "true". |
| theme | string | 사용자의 테마. Mattermost 테마 문자열 형식입니다. |
| military_time | string | 사용자가 24시간제를 활성화한 경우 "true". 12시간제를 사용하는 경우 "false". |
| collapse_previews | string | 사용자가 기본적으로 링크 미리 보기를 접는 경우 "true". 사용자가 기본적으로 링크 미리 보기를 펼치는 경우 "false". |
| message_display | string | 사용자가 표시되는 메시지에 선호하는 스타일. 사용자가 표준 스타일을 사용하는 경우 "clean", 간결한 스타일을 사용하는 경우 "compact"입니다. |
| channel_display_mode | string | 사용자가 채널 메시지를 화면 전체 너비로 표시하는 경우 "full", 고정 너비의 가운데 정렬 블록을 사용하는 경우 "centered". |
| tutorial_step | string | "1", "2" 또는 "3"은 사용자가 시작할 튜토리얼 단계를 나타냅니다. "999"는 튜토리얼을 건너뜁니다. |
| email_interval | string | 대량 가져오기 중에 사용할 이메일 일괄 처리 간격. |
| delete_at | int64 | 사용자가 비활성화된 시점의 타임스탬프. |
| teams | array | 사용자가 멤버로 속한 팀. UserTeamMembership 객체의 배열입니다. |
| notify_props | object | UserNotifyProps 객체로 정의된 사용자의 알림 기본 설정. |
UserNotifyProps 객체#
이 객체는 User 객체의 멤버입니다.
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| desktop | string | 데스크톱 알림 전송 기본 설정. 다음 값 중 하나입니다. "all" - 모든 활동에 대해. "mention" - 멘션에만. "none" - 전송하지 않음. |
| desktop_sound | string | 데스크톱 알림 소리 재생 여부 기본 설정. 다음 값 중 하나입니다. "true" - 소리가 재생됩니다. "false" - 소리가 재생되지 않습니다. |
| string | 이메일 알림 기본 설정. 다음 값 중 하나입니다. "true" - 이메일 알림이 즉시 전송됩니다. "false" - 이메일 알림이 전송되지 않습니다. |
|
| mobile | string | 모바일 푸시 알림 전송 기본 설정. 다음 값 중 하나입니다. "all" - 모든 활동에 대해. "mention" - 멘션에만. "none" - 전송하지 않음. |
| mobile_push_status | string | 푸시 알림이 트리거되는 시점에 대한 기본 설정. 다음 값 중 하나입니다. "online" - 온라인, 자리 비움 또는 오프라인일 때. "away" - 자리 비움 또는 오프라인일 때. "offline" - 오프라인일 때. |
| channel | string | @all, @channel, @here가 멘션을 트리거할지 여부에 대한 기본 설정. 다음 값 중 하나입니다. "true" - 멘션이 트리거됩니다. "false" - 멘션이 트리거되지 않습니다. |
| comments | string | 답글 멘션 알림 기본 설정. 다음 값 중 하나입니다. "any" - 사용자가 시작했거나 참여한 답글 스레드의 메시지에 대해 알림을 트리거합니다. "root" - 사용자가 시작한 스레드의 메시지에 대해 알림을 트리거합니다. "never" - 사용자가 멘션되지 않는 한 답글 스레드의 메시지에 대해 알림을 트리거하지 않습니다. |
| mention_keys | string | 멘션을 트리거하는 사용자 지정 단어(대소문자 구분 없음)에 대한 기본 설정. 단어는 쉼표로 구분합니다. |
UserTeamMembership 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| name | string | 이 사용자가 멤버로 속한 팀의 이름. |
| roles | string | 이 팀에서 사용자가 가진 역할. |
| theme | string | 이 팀에 대한 사용자의 테마. Mattermost 테마 문자열 형식입니다. |
| channels | array | 이 팀에서 사용자가 멤버로 속한 채널. UserChannelMembership 객체의 배열로 나열됩니다. |
UserChannelMembership 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| name | string | 이 사용자가 멤버로 속한, 상위 팀 내 채널의 이름. |
| roles | string | 이 채널에서 사용자가 가진 역할. |
| notify_props | object | ChannelNotifyProps 객체로 정의된, 이 채널에서의 이 사용자 알림 기본 설정. |
| favorite | boolean | 이 사용자에게 채널이 즐겨찾기로 표시되어 있는지 여부. 다음 값 중 하나입니다. "true" - 예. "false" - 아니요. |
| mention_count | int64 | ChannelMentionCount 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
| mention_count_root | int64 | ChannelMentionCountRoot 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
| urgent_mention_count | int64 | UrgendMentionCount 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
| msg_count | int64 | MsgCount 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
| msg_count_root | int64 | MsgCountRoot 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
| last_viewed_at | int64 | LastViewedAt 객체로 정의된, 이 채널에서의 이 사용자 멘션 기본 설정. |
ChannelNotifyProps 객체#
이 객체는 ChannelMembership 객체의 멤버입니다.
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| desktop | string | 데스크톱 알림 전송 기본 설정. 다음 값 중 하나입니다. "default" - 전역 기본값. "all" - 모든 활동에 대해. "mention" - 멘션에만. "none" - 전송하지 않음. |
| mobile | string | 모바일 알림 전송 기본 설정. 다음 값 중 하나입니다. "default" - 전역 기본값. "all" - 모든 활동에 대해. "mention" - 멘션에만. "none" - 전송하지 않음. |
| mark_unread | string | 채널을 읽지 않음으로 표시하는 기본 설정. 다음 값 중 하나입니다. "all" - 읽지 않은 모든 메시지에 대해. "mention" - 멘션에만. |
Post 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| team | string | 이 게시물이 속한 팀의 이름. |
| channel | string | 이 게시물이 속한 채널의 이름. |
| user | string | 이 게시물을 작성한 사용자의 사용자 이름. |
| message | string | 게시물에 포함된 메시지. |
| props | object | 게시물의 props. 연동 및 봇 게시물에서 사용하는 추가 포맷팅 정보를 포함합니다. 자세한 설명은 메시지 첨부 파일 문서를 참조하세요. |
| create_at | int | 게시물의 타임스탬프. Unix epoch 이후 경과한 밀리초 단위입니다. |
| reactions | array | 이 게시물에 대한 이모지 반응. Reaction 객체의 배열입니다. |
Reply 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| user | string | 이 답글을 작성한 사용자의 사용자 이름. |
| message | string | 답글에 포함된 메시지. |
| create_at | int | 답글의 타임스탬프. Unix epoch 이후 경과한 밀리초 단위입니다. |
Reaction 객체#
이 객체는 Post 객체의 멤버입니다.
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| user | string | 이 답글을 작성한 사용자의 사용자 이름. |
| emoji_name | string | 반응의 이모지. |
| create_at | int | 답글의 타임스탬프. Unix epoch 이후 경과한 밀리초 단위입니다. |
Emoji 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| name | string | 이모지 이름. |
| image | string | 이 이모지의 이미지 파일 경로 (절대 경로 또는 현재 작업 디렉터리 기준 상대 경로). |
DirectChannel 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| members | array | 채널 멤버 목록. |
| favorited_by | array | 다이렉트 채널을 즐겨찾기에 추가한 채널 멤버 목록. |
| header | string | 채널 헤더. |
DirectPost 객체#
| 필드 이름 | 유형 | 설명 |
|---|---|---|
| user | string | 이 게시물을 작성한 사용자의 사용자 이름. |
| message | string | 게시물에 포함된 메시지. |
| create_at | int | 게시물의 타임스탬프. Unix epoch 이후 경과한 밀리초 단위입니다. |