대량 내보내기 도구
하나의 Mattermost 인스턴스에서 다른 인스턴스로 데이터를 이동하는 것은 대량 로딩 기능을 사용하여 JSONL 파일로 데이터를 내보내는 것으로 시작됩니다. 다음 데이터 유형을 내보낼 수 있습니다: 서버의 특정 영역 내보내기, 추가 유형의 게시물 내보내기, 파일 첨부, 웹훅 및 봇 메시지 내보내기와 같은 데이터 유형 구성은 아직 지원되지 않습니다.
하나의 Mattermost 인스턴스에서 다른 인스턴스로 데이터를 이동하는 것은 대량 로딩 기능을 사용하여 JSONL 파일로 데이터를 내보내는 것으로 시작됩니다. 이 도구는 개념 증명을 위한 서버를 생성하고, 프로덕션 사용을 위한 다른 서버를 생성하여 이제 개념 증명 인스턴스의 이력을 유지하고 싶을 때 유용합니다.
다음 데이터 유형을 내보낼 수 있습니다:
- 팀
- 채널 (공개, 비공개 및 다이렉트)
- 메시지 (일반, 비답글 및 다이렉트 메시지)
- 스레드 토론 및 메시지 답글
- 메시지 반응
- 사용자
- 사용자 기본 설정 (고정 및 저장된 메시지 포함)
- 사용자의 팀 멤버십
- 사용자의 채널 멤버십
- 사용자의 알림 기본 설정
- 커스텀 이모지
- 다이렉트 메시지 및 그룹 메시지 채널 (읽음/읽지 않음 상태 포함)
- 역할
- 권한 스킴
- 봇 사용자
서버의 특정 영역 내보내기, 추가 유형의 게시물 내보내기, 파일 첨부, 웹훅 및 봇 메시지 내보내기와 같은 데이터 유형 구성은 아직 지원되지 않습니다. 삭제된 객체도 아직 지원되지 않습니다.
내보내기에 추가 속성 또는 객체 추가 요청을 하려면 기능 아이디어 포럼에 기능 요청을 추가하세요.
대량 내보내기 데이터#
- mmctl export create -- attachments 명령을 실행하여 첨부 파일을 포함한 전체 내보내기 파일을 생성합니다. 자세한 내용은 Mattermost 데이터 마이그레이션 문서를 참조하세요.
- 작업이 실행되는 동안 mmctl export job show 명령을 실행하여 상태를 확인할 수 있습니다.
- 내보내기 작업 상태가 성공인 경우:
a. mmctl export list 명령을 실행하여 완료된 내보내기 파일 이름을 확인합니다.
b. 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-teams
sudo -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 auth 데이터에서 제공된 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 이후 밀리초). |
