중요 업그레이드 참고사항#
중요
Mattermost Server v9.11 Extended Support Release 의 지원이 2025년 5월 15일에 수명 주기를 마감했습니다. Mattermost Server v10.5 이상 으로 업그레이드가 필요합니다.
참고
Microsoft Teams Calling 플러그인을 v2.0.0으로 업그레이드하려면 사용자가 계정을 다시 연결해야 합니다.
Go 버전 1.22.0 및 1.22.1로 빌드된 Mattermost 플러그인은 작동하지 않습니다. 플러그인 개발자는 대신 Go 1.22.2 이상을 사용해야 합니다.
Keybase가 Ubuntu 저장소 서명 키 제공을 중단했습니다. 이를 사용 중이었다면 문서에 언급된 대로 키를 검색하도록 설치 스크립트를 업데이트하세요: https://docs.mattermost.com/deploy/server/deploy-linux.
MySQL 8.0.22에는 문자열 값을 정수로 변경하는 JSON 열 유형 문제 가 있어 Mattermost가 제대로 작동하지 않습니다. 사용자는 이 데이터베이스 버전을 피하는 것이 좋습니다.
5.x 릴리스에서 7.x로 업그레이드할 때는 업그레이드가 성공적으로 완료되도록 먼저 5.37.10으로 업그레이드해야 합니다.
다음 버전보다 이전 버전에서 업그레이드하는 경우… |
그러면… |
|
|---|---|---|
v10.8 |
새로운 테이블 |
|
레거시 SKU E10 및 E20 라이선스 지원이 제거되었습니다. 도움이 필요하시면 Mattermost 전문가와 상담 하세요. |
||
v10.7 |
향후 라이선스 기능을 위한 메타데이터를 저장하기 위해 PostgreSQL: ALTER TABLE channels ADD COLUMN IF NOT EXISTS bannerinfo jsonb;
MySQL: SET @preparedStatement = (SELECT IF(
NOT EXISTS(
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Channels'
AND table_schema = DATABASE()
AND column_name = 'BannerInfo'
),
'ALTER TABLE Channels ADD COLUMN BannerInfo json;',
'SELECT 1;'
));
PREPARE addColumnIfNotExists FROM @preparedStatement;
EXECUTE addColumnIfNotExists;
DEALLOCATE PREPARE addColumnIfNotExists;
|
|
인덱스 생성을 위한 SQL 마이그레이션을 포함하여 속성 아키텍처 테이블에 커서 기반 페이지네이션 지원이 추가되었습니다. 마이그레이션은 완전히 이전 버전과 호환되며, 잠금이 없고 다운타임이 발생하지 않을 수 있습니다. 다음은 스키마 변경에 포함된 SQL 쿼리입니다: MySQL: SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'PropertyValues'
AND table_schema = DATABASE()
AND index_name = 'idx_propertyvalues_create_at_id'
) > 0,
'SELECT 1',
'CREATE INDEX idx_propertyvalues_create_at_id ON PropertyValues(CreateAt, ID);'
));
PREPARE createIndexIfNotExists FROM @preparedStatement;
EXECUTE createIndexIfNotExists;
DEALLOCATE PREPARE createIndexIfNotExists;
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'PropertyFields'
AND table_schema = DATABASE()
AND index_name = 'idx_propertyfields_create_at_id'
) > 0,
'SELECT 1',
'CREATE INDEX idx_propertyfields_create_at_id ON PropertyFields(CreateAt, ID);'
));
PREPARE createIndexIfNotExists FROM @preparedStatement;
EXECUTE createIndexIfNotExists;
DEALLOCATE PREPARE createIndexIfNotExists;
PostgreSQL: CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_propertyvalues_create_at_id ON PropertyValues(CreateAt, ID)
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_propertyfields_create_at_id ON PropertyFields(CreateAt, ID)
|
||
v10.6 |
PostgreSQL v11 및 v12 지원이 제거되었습니다. 새로운 최소 PostgreSQL 버전은 v13+입니다. 자세한 내용은 minimum supported PostgreSQL version policy 문서를 참조하세요. |
|
마이그레이션 시간: 12M 게시물과 1M fileinfo 항목이 있는 시스템에서 마이그레이션은 15초가 소요됩니다. 이 마이그레이션은 잠금이 없습니다. 이 최적화는 PostgreSQL에만 적용되므로 MySQL 배포에는 마이그레이션이 없습니다. |
||
v10.5 |
Mattermost 버전 v10.5.0 및 v10.5.1에는 플러그인 구성 설정이 사라질 수 있는 버그가 포함된 번들 Jira 플러그인(v4.2.0)이 포함되어 있습니다. 잠재적인 중단을 피하기 위해 이러한 버전으로 업그레이드하지 않는 것을 강력히 권장합니다. 이미 v10.5.0 또는 v10.5.1로 업그레이드한 경우, Jira 플러그인을 v4.2.1 버전으로 업데이트하거나, 더 나은 방법으로 Mattermost와 Jira 플러그인을 모두 최신 버전으로 업그레이드하는 것을 권장합니다. |
|
웹 앱의 PluginLinkComponent 내부 작동이 기본적으로 DOM에서 링크 툴팁을 언마운트하도록 변경되어 성능이 크게 향상되었습니다. registerLinkTooltipComponent 를 사용하여 링크 툴팁을 등록하는 플러그인은 툴팁 구성 요소 관리 방식의 변경을 경험하게 됩니다—이제는 링크에 마우스를 올리거나 포커스할 때만 마운트됩니다. 결과적으로 플러그인은 마운트 및 언마운트 시나리오를 적절히 처리하기 위해 구성 요소를 업데이트해야 할 수 있습니다. 예를 들어, mattermost-plugin-jira 에서 componentDidUpdate 라이프사이클 훅이 componentDidMount로 대체되었습니다. 플러그인의 툴팁 구성 요소가 함수형 React 구성 요소인 경우, 빈 종속성 배열로 useEffect에 의해 관리되므로 이 동작이 자동으로 처리될 가능성이 높습니다. |
||
Mattermost 서버는 수동 플러그인 배포 지원을 중단했습니다. 플러그인은 관리자나 배포 자동화가 플러그인 번들의 내용을 서버의 작업 디렉토리에 복사할 때 수동으로 배포되었습니다. 수동 또는 자동화된 배포 워크플로우가 여전히 필요한 경우, 관리자는 대신 플러그인 번들을 사전 패키징할 수 있습니다. 자세한 내용은 this forum post 를 참조하세요. |
||
Mattermost는 Microsoft Windows 운영체제용 공식 Mattermost 서버 빌드를 중단했습니다. 관리자는 기존 Mattermost 서버 설치를 공식 Linux 빌드를 사용하도록 마이그레이션해야 합니다. 자세한 내용은 this forum post 를 참조하세요. |
||
v10.5는 Compliance Export 기능에 대한 업데이트를 도입하여 내보낸 데이터의 구조, 저장 및 처리 방식을 수정합니다. 이러한 변경 사항은 주로 시스템 관리자에게 영향을 미치며 주요 변경 사항은 아래에 설명되어 있습니다. 자세한 내용은 Compliance Export documentation 를 참조하세요. 출력 파일 및 디렉토리가 변경되었습니다 - 이전에는 모든 배치 디렉토리를 포함하는 단일 zip을 내보냈습니다. 이제는 단일 디렉토리를 내보내고, 해당 디렉토리 아래에서 각 배치가 자체 zip이 됩니다. Compliance 내보내기 성능 개선 - Compliance 내보내기가 이제 최소 50% 더 빠르고, 가능한 더 빠를 것입니다. 로직 개선 - 발견된 버그를 수정하고 개선했습니다. 각 내보내기 유형별 변경 사항 - 내보내기 출력 형식이 변경되었습니다. 일부 필드의 의미가 명확해졌으며, 여러 새로운 필드가 추가되었습니다. 우리의 목표는 로직 버그를 수정하면서 이전 버전과의 호환성을 유지하는 것이었습니다. 자세한 내용은 compliance export 제품 문서를 참조하세요. |
||
Property System Architecture 기능의 일부로, Mattermost v10.5는 스키마에 새 테이블을 추가하기 위한 일련의 마이그레이션을 실행할 예정입니다. 이 마이그레이션은 새 테이블과 인덱스만 생성하므로 기존 데이터에는 영향을 미치지 않습니다. 새로운 테이블 PostgreSQL의 경우,
마이그레이션은 데이터 없이 새 테이블만 생성합니다. 마이그레이션은 이전 버전과 호환되며, 이전 버전의 Mattermost가 새 스키마 변경 사항으로 실행될 수 있습니다. 이 업그레이드로 인해 테이블 잠금이나 기존 테이블 작업에 영향을 받지 않습니다. 이 릴리스로 업그레이드할 때 다운타임이 발생하지 않습니다. 스키마 변경에 포함된 SQL 쿼리는 다음과 같습니다: MySQL: CREATE TABLE IF NOT EXISTS PropertyGroups (
ID varchar(26) PRIMARY KEY,
Name varchar(64) NOT NULL,
UNIQUE(Name)
);
CREATE TABLE IF NOT EXISTS PropertyFields (
ID varchar(26) PRIMARY KEY,
GroupID varchar(26) NOT NULL,
Name varchar(255) NOT NULL,
Type enum('text', 'select', 'multiselect', 'date', 'user', 'multiuser'),
Attrs json,
TargetID varchar(255),
TargetType varchar(255),
CreateAt bigint(20),
UpdateAt bigint(20),
DeleteAt bigint(20),
UNIQUE(GroupID, TargetID, Name, DeleteAt)
);
CREATE TABLE IF NOT EXISTS PropertyValues (
ID varchar(26) PRIMARY KEY,
TargetID varchar(255) NOT NULL,
TargetType varchar(255) NOT NULL,
GroupID varchar(26) NOT NULL,
FieldID varchar(26) NOT NULL,
Value json,
CreateAt bigint(20),
UpdateAt bigint(20),
DeleteAt bigint(20),
UNIQUE(GroupID, TargetID, FieldID, DeleteAt)
);
SET @preparedStatement = (SELECT IF(
(
SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'PropertyValues'
AND table_schema = DATABASE()
AND index_name = 'idx_propertyvalues_targetid_groupid'
) > 0,
'SELECT 1',
'CREATE INDEX idx_propertyvalues_targetid_groupid ON PropertyValues (TargetID, GroupID);'
));
PREPARE createIndexIfNotExists FROM @preparedStatement;
EXECUTE createIndexIfNotExists;
DEALLOCATE PREPARE createIndexIfNotExists;
PostgreSQL: CREATE TABLE IF NOT EXISTS PropertyGroups (
ID varchar(26) PRIMARY KEY,
Name varchar(64) NOT NULL,
UNIQUE(Name)
);
DO
BEGIN
IF NOT EXISTS (SELECT * FROM pg_type typ
INNER JOIN pg_namespace nsp ON nsp.oid = typ.typnamespace
WHERE nsp.nspname = current_schema()
AND typ.typname = 'property_field_type') THEN
CREATE TYPE property_field_type AS ENUM (
'text',
'select',
'multiselect',
'date',
'user',
'multiuser'
);
END IF;
END;
LANGUAGE plpgsql;
CREATE TABLE IF NOT EXISTS PropertyFields (
ID varchar(26) PRIMARY KEY,
GroupID varchar(26) NOT NULL,
Name varchar(255) NOT NULL,
Type property_field_type,
Attrs jsonb,
TargetID varchar(255),
TargetType varchar(255),
CreateAt bigint NOT NULL,
UpdateAt bigint NOT NULL,
DeleteAt bigint NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_propertyfields_unique ON PropertyFields (GroupID, TargetID, Name) WHERE DeleteAt = 0;
CREATE TABLE IF NOT EXISTS PropertyValues (
ID varchar(26) PRIMARY KEY,
TargetID varchar(255) NOT NULL,
TargetType varchar(255) NOT NULL,
GroupID varchar(26) NOT NULL,
FieldID varchar(26) NOT NULL,
Value jsonb NOT NULL,
CreateAt bigint NOT NULL,
UpdateAt bigint NOT NULL,
DeleteAt bigint NOT NULL
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_propertyvalues_unique ON PropertyValues (GroupID, TargetID, FieldID) WHERE DeleteAt = 0;
CREATE INDEX IF NOT EXISTS idx_propertyvalues_targetid_groupid ON PropertyValues (TargetID, GroupID);
``
|
||
v10.3 |
Classic Mobile App이 단계적으로 중단되었습니다. Apple App Store 또는 Google Play Store 에서 새로운 v2 Mobile App을 다운로드하세요. 자세한 내용은 classic mobile app deprecation Mattermost 포럼 게시물을 참조하세요. |
|
v10.2 |
Docker 이미지 아티팩트 서명을 위한 Docker Content Trust(DCT)가 v10.2(2024년 11월)에서 Sigstore Cosign으로 대체되었습니다. DCT를 사용하여 아티팩트 검증에 의존하는 경우 Cosign 사용으로 전환 하세요. 자세한 내용은 DCT 중단 예정 Mattermost 포럼 게시물을 참조하세요. |
|
v10.0 |
v10부터 MySQL을 사용한 새로운 설치를 더 이상 지원하지 않습니다. 모든 신규 고객 및/또는 배포는 PostgreSQL 데이터베이스의 최소 지원 버전으로만 지원됩니다. MySQL 지원 종료는 Mattermost v11을 목표로 합니다. |
|
Apps Framework는 새로운 설치에서 더 이상 사용되지 않습니다. 웹훅, 슬래시 명령어, OAuth2 앱 및 플러그인을 사용하여 Mattermost를 확장하세요. |
||
Mattermost v10은 모든 Enterprise 라이선스 고객을 위한 Playbooks v2를 도입합니다. Professional SKU 고객은 2025년 9월까지 유지 및 지원되는 Playbooks v1을 중단 없이 계속 사용할 수 있으며, 그 후 적절한 grandfathering 전략이 적용됩니다. 자세한 정보와 논의는 포럼 에서 확인할 수 있습니다. |
||
System Console 의 채널 관리 섹션에서 |
||
공지 배너 기능을 “시스템 전체 알림”으로 이름을 변경했습니다. |
||
System Console에서 “Collapsed Reply Threads”를 “Threaded Discussions”로 이름을 변경했습니다. |
||
System Console에서 “System Roles”를 “Delegated Granular Administration”으로 이름을 변경했습니다. |
||
SSO 로그인을 위해 “Office 365”를 “Entra ID”로 이름을 변경했습니다. |
||
이미지 프록시가 비활성화된 경우 |
||
Calls plugin v1.0.1 을 사전 패키징했습니다. 이는 라이선스가 있는 서버의 지원성과 품질에 집중하기 위해 라이선스가 없는 서버에서 그룹 통화를 제거하는 등 주요 변경 사항을 포함합니다. 라이선스가 없는 서버는 대부분의 활동을 차지하는 다이렉트 메시지 채널에서 Calls를 계속 사용할 수 있습니다. |
||
더 이상 사용되지 않는 |
||
대부분의 API 엔드포인트에서 더 이상 사용되지 않는 |
||
실험적인 Strict CSRF 토큰 적용을 중단했습니다. 이 기능은 Mattermost v11에서 완전히 제거될 예정입니다. |
||
v9.11 |
Elasticsearch v8 지원이 추가되었습니다. 또한 Opensearch v1.x 및 v2.x에 대한 베타 지원도 추가되었습니다. Elasticsearch와 Opensearch를 구분하기 위해 새로운 구성 설정 참고
Elasticsearch v8을 사용하는 경우 와일드카드 작업이 작동하도록 |
|
v9.5 |
MySQL v5.7이 수명 종료에 도달했기 때문에 지원을 중단했습니다. 고객에게는 가능한 빨리 MySQL 인스턴스를 업그레이드할 것을 권장합니다. |
|
엔터프라이즈 규모 및 액세스 제어 자동화 기능을 사용할 수 없고 등록되었지만 비활성화되지 않은 사용자 수가 10,000명을 초과하는 경우 컴파일된 Team Edition 및 Enterprise Edition 배포에 안전 제한 오류 메시지를 추가했습니다. ERROR_SAFETY_LIMITS_EXCEEDED. |
||
v9.2 |
전역 보존 정책이 “keep-forever” 로 설정되어 있더라도 사용자 정의 보존 정책이 활성화된 경우 작업을 실행하도록 데이터 보존 정책을 수정했습니다. 이 수정 전에는 전역 데이터 보존 정책이 “keep-forever” 로 설정되어 있거나 비활성화되어 있는 한 활성화된 사용자 정의 데이터 보존 정책이 실행되지 않았습니다. 수정 후에는 전역 데이터 보존 정책이 “keep-forever”로 설정되어 있더라도 사용자 정의 데이터 보존 정책이 자동으로 실행됩니다. 서버가 업그레이드되면 게시물이 의도치 않게 삭제될 수 있습니다. 관리자는 업그레이드 전에 모든 사용자 정의 데이터 보존 정책을 비활성화하고 업그레이드 후 다시 활성화해야 합니다. |
|
v9.1 |
이제 지원되는 최소 데스크톱 앱 버전은 v5.3입니다. OAuth/SAML 흐름이 |
|
v9.0 |
더 이상 사용되지 않는 Insights 기능이 제거되었습니다. |
|
Mattermost Boards와 다양한 다른 플러그인이 완전한 커뮤니티 지원으로 전환되었습니다. 자세한 내용은 이 포럼 게시물 을 참조하세요. |
||
|
||
v8.1 |
v8.1.2에서 데이터 보존 새 테이블을 위한 새로운 마이그레이션: MySQL: CREATE TABLE
IF NOT EXISTS
RetentionIdsForDeletion(Id
VARCHAR(26) NOT NULL,
TableName VARCHAR(64),
Ids json, PRIMARY KEY (Id
), KEY
idx_retentionidsfordeletion_tablename
(TableName)) ENGINE =
InnoDB DEFAULT CHARSET =
utf8mb4;
``
PostgreSQL: CREATE TABLE
IF NOT EXISTS
retentionidsfordeletion(id
VARCHAR(26) PRIMARY KEY,
tablename VARCHAR(64),
ids VARCHAR(26) []);
CREATE INDEX
IF NOT EXISTS
idx_retentionidsfordeletion_tablename
ON retentionidsfordeletion(
tablename);
``
사용자나 채널을 하드 삭제하면 이제 관련된 반응도 함께 정리됩니다.
관리자가 고아 반응을 삭제할 때 한 번에 가져올 ID 배치 수를 구성할 수 있는 새로운 구성 설정 |
|
v8.0 |
Insights는 모든 새로운 인스턴스와 v8.0으로 업그레이드하는 기존 서버에서 더 이상 사용되지 않습니다. Insights가 더 이상 사용되지 않는 이유에 대한 자세한 내용은 이 포럼 게시물 을 참조하세요. |
|
Focalboard 플러그인은 이제 모든 새로운 인스턴스에서 기본적으로 비활성화되어 있으며 시스템 콘솔 > 플러그인 설정 에서 활성화할 수 있습니다. |
||
Channel Export와 Apps 플러그인은 이제 기본적으로 비활성화되어 있습니다. |
||
온프레미스 서버에서 Apps Bar가 이제 기본적으로 활성화됩니다. |
||
메인 server package 에서 Go 모듈 경로가 |
||
익숙한 model 과 plugin 패키지를 포함하는 public 서브모듈이 도입되었으며, 이제 서버와 별도로 버전 관리됩니다. Go 프로그램과 플러그인은 이제 github.com/mattermost/mattermost-server/server/public 을 가져오고 버전을 관용적으로 관리할 수 있으므로 특정 커밋 해시를 go get 할 필요가 없어졌습니다. 이 서브모듈은 아직 v1을 출시하지 않았고 API를 안정화하기 전에 호환성이 깨지는 변경사항을 도입할 예정이지만, Mattermost 서버 자체와는 앞뒤로 호환됩니다. |
||
위의 public 서브모듈의 일부로, |
||
PostgreSQL v10 지원이 제거되었습니다. 새로운 최소 PostgreSQL 버전은 v11입니다. |
||
Mattermost Go용 공개 API가 이제 별도로 버전 관리되는 패키지로 제공됩니다. 특정 커밋 해시를 고정하는 대신 관용적인 Go를 사용하여 이 패키지를 의존성으로 추가하세요: go get github.com/mattermost/mattermost-server/server/public . 이 재배치된 Go API는 Mattermost v7과의 하위 호환성을 유지합니다. 또한 이전에 github.com/mattermost/mattermost-server/v6/model에 있던 기존 Go API는 Mattermost v8과의 상위 호환성을 유지하지만 최신 기능이 포함되지 않을 수 있습니다. 플러그인은 재컴파일할 필요가 없지만, 개발자는 빌드 프로세스를 단순화하기 위해 새 패키지 사용을 선택할 수 있습니다. 새로운 공개 패키지는 올해 말 v1으로 출시하기 전에 추가 코드 리팩토링을 허용하기 위해 Mattermost v8과 함께 버전 0.5.0으로 제공됩니다. |
||
다중 줄 JSON, 문자열로 이스케이프된 JSON 또는 JSON을 포함하는 파일을 가리키는 파일 이름을 지원하는 세 가지 구성 필드가 추가되었습니다: |
||
Go MySQL 드라이버가 |
||
|
||
더 이상 사용되지 않는 |
||
더 이상 사용되지 않는 |
||
사이트 URL의 출처가 아닌 다른 출처에서 웹소켓 연결을 허용하려는 서버의 경우, |
||
v8.0 릴리스에서 다음 저장소가 하나로 병합되었습니다: |
||
이전 릴리스의 마이그레이션으로 인한 문제가 수정되었습니다. PostgreSQL 14 DB t3.medium RDS 인스턴스에서 쿼리는 약 11ms가 소요됩니다. preferences 테이블의 잠금은 삭제할 행이 있는 경우에만 획득되며, 소요 시간은 무시할 수 있습니다. |
||
사용자가 나간 채널의 스레드 보기에 여전히 스레드가 표시되는 문제가 수정되었습니다. PostgreSQL의 마이그레이션 실행 시간: 실행 시간: 58.11초, DELETE 2766690. MySQL의 마이그레이션 실행 시간: Query OK, 2766769개 행 영향 (4분 47.57초). |
||
다른 출처에서 웹소켓 연결을 허용하려는 서버의 경우 |
||
FileInfo에 1731개 행과 1100만 개의 게시물이 있는 PostgreSQL 12.14 DB에서 약 0.27초가 소요되었습니다. FileInfo에 1405개 행과 1100만 개의 게시물이 있는 MySQL 8.0.31 DB에서 약 0.3초가 소요되었습니다. |
||
v7.10 |
v7.10.1에서 이전 릴리스의 마이그레이션으로 인한 문제가 수정되었습니다. PostgreSQL 14 DB t3.medium RDS 인스턴스에서 쿼리는 약 11ms가 소요됩니다. preferences 테이블의 잠금은 삭제할 행이 있는 경우에만 획득되며, 소요 시간은 무시할 수 있습니다. |
|
v7.10.1에서 사용자가 나간 채널의 스레드 보기에 여전히 스레드가 표시되는 문제가 수정되었습니다. MySQL의 마이그레이션 실행 시간: Query OK, 2766769개 행 영향 (4분 47.57초). PostgreSQL의 마이그레이션 실행 시간: 58.11초, DELETE 2766690. |
||
v7.10.3에서 사이트 URL의 출처가 아닌 다른 출처에서 웹소켓 연결을 허용하려는 서버의 경우, |
||
v7.9 |
|
|
v7.9.4에서 사용자가 나간 채널의 스레드 보기에 여전히 스레드가 표시되는 문제가 수정되었습니다. MySQL의 마이그레이션 실행 시간: Query OK, 2766769개 행 영향 (4분 47.57초). PostgreSQL의 마이그레이션 실행 시간: 58.11초, DELETE 2766690. |
||
v7.9.4에서 Oauth 2 관련 수정사항이 백포트되었습니다. 쿼리 시간은 삭제할 행이 있는지 여부에 따라 달라집니다. 삭제할 행이 없는 경우:
4개 행:
이 시간은 다음과 같은 테이블 크기를 기준으로 합니다:
다음을 실행하여 영향받는 행의 수를 확인할 수 있습니다: PostgreSQL: SELECT count(o.*)
FROM oauthaccessdata o
WHERE NOT EXISTS (
SELECT p.*
FROM preferences p
WHERE o.clientid = p.name
AND o.userid = p.
userid
AND p.category =
'oauth_app'
);
MySQL: SELECT COUNT(o.`Token`)
FROM OAuthAccessData o
LEFT JOIN Preferences p ON o.
clientid = p.name
AND o.userid = p.userid
AND p.category = 'oauth_app'
INNER JOIN Sessions s ON o.token = s
.token
WHERE p.name IS NULL;
삭제할 행이 있는 경우에만 |
||
v7.9.5에서 사이트 URL의 출처가 아닌 다른 출처에서 웹소켓 연결을 허용하려는 서버의 경우 |
||
v7.8 |
메시지 우선순위 및 확인 가 이제 모든 인스턴스에서 기본적으로 활성화됩니다. System Console에서 게시물 > 메시지 우선순위 로 이동하거나 |
|
v7.8.5에서 사용자가 나간 채널의 스레드 보기에 여전히 스레드가 표시되는 문제가 수정되었습니다. MySQL의 마이그레이션 실행 시간: Query OK, 2766769개 행 영향 (4분 47.57초). PostgreSQL의 마이그레이션 실행 시간: 58.11초, DELETE 2766690. |
||
v7.8.5에서 Oauth 2 관련 수정사항이 백포트되었습니다. 쿼리 시간은 삭제할 행이 있는지 여부에 따라 달라집니다. 삭제할 행이 없는 경우:
4개 행:
이 시간은 다음과 같은 테이블 크기를 기준으로 합니다:
다음을 실행하여 영향받는 행의 수를 확인할 수 있습니다: PostgreSQL: SELECT count(o.*)
FROM oauthaccessdata o
WHERE NOT EXISTS (
SELECT p.*
FROM preferences p
WHERE o.clientid = p.name
AND o.userid = p.
userid
AND p.category =
'oauth_app'
);
MySQL: SELECT COUNT(o.`Token`)
FROM OAuthAccessData o
LEFT JOIN Preferences p ON o.
clientid = p.name
AND o.userid = p.userid
AND p.category = 'oauth_app'
INNER JOIN Sessions s ON o.token = s
.token
WHERE p.name IS NULL;
삭제할 행이 있는 경우에만 |
||
v7.8.7에서 사이트 URL의 출처가 아닌 다른 출처에서 웹소켓 연결을 허용하려는 서버의 경우 |
||
v7.8.11에서 데이터 보존 새 테이블을 위한 새로운 마이그레이션: MySQL: CREATE TABLE
IF NOT EXISTS
RetentionIdsForDeletion(Id
VARCHAR(26) NOT NULL,
TableName VARCHAR(64),
Ids json, PRIMARY KEY (Id
), KEY
idx_retentionidsfordeletion_tablename
(TableName)) ENGINE =
InnoDB DEFAULT CHARSET =
utf8mb4;
``
PostgreSQL: CREATE TABLE
IF NOT EXISTS
retentionidsfordeletion(id
VARCHAR(26) PRIMARY KEY,
tablename VARCHAR(64),
ids VARCHAR(26) []);
CREATE INDEX
IF NOT EXISTS
idx_retentionidsfordeletion_tablename
ON retentionidsfordeletion(
tablename);
``
사용자나 채널을 하드 삭제하면 이제 관련된 반응도 함께 정리됩니다.
관리자가 고아 반응을 삭제할 때 한 번에 가져올 ID 배치 수를 구성할 수 있는 새로운 구성 설정 |
||
v7.7 |
웹앱 구성 요소가 있는 플러그인은 Mattermost v7.7 릴리스 및 업데이트된 이는 마운트 해제된 컴포넌트에서 |
|
스키마 변경에 대한 테스트 결과는 다음과 같습니다: 인스턴스:
게시물 수: 1200만 개 반응 수: 250만 개 MySQL: -- Drop any existing TeamId column from 000094_threads_teamid.up.sql
SET @preparedStatement = (SELECT IF(
EXISTS(``
SELECT 1 FROM INFORMATION_SCHEMA.STATISTICS
WHERE table_name = 'Threads'
AND table_schema = DATABASE()
AND column_name = 'TeamId'
),
'ALTER TABLE Threads DROP COLUMN TeamId;',
'SELECT 1;'
));
PREPARE removeColumnIfExists FROM @preparedStatement;
EXECUTE removeColumnIfExists;
DEALLOCATE PREPARE removeColumnIfExists;
SET @preparedStatement = (SELECT IF(
NOT EXISTS(
SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'Threads'
AND table_schema = DATABASE()
AND column_name = 'ThreadTeamId'
),
'ALTER TABLE Threads ADD COLUMN ThreadTeamId varchar(26) DEFAULT NULL;',
'SELECT 1;'
));
PREPARE addColumnIfNotExists FROM @preparedStatement;
EXECUTE addColumnIfNotExists;
DEALLOCATE PREPARE addColumnIfNotExists;
Query OK, 0 rows affected (7.71 sec)
UPDATE Threads, Channels
SET Threads.ThreadTeamId = Channels.TeamId
WHERE Channels.Id = Threads.ChannelId
AND Threads.ThreadTeamId IS NULL;
Query OK, 846313 rows affected (51.32 sec)
Rows matched: 846313 Changed: 846313 Warnings: 0
PostgreSQL: -- Drop any existing TeamId column from 000094_threads_teamid.up.sql
ALTER TABLE threads DROP COLUMN IF EXISTS teamid;
ALTER TABLE threads ADD COLUMN IF NOT EXISTS threadteamid VARCHAR(26);
ALTER TABLE
Time: 2.236 ms
UPDATE threads
SET threadteamid = channels.
teamid
FROM channels
WHERE threads.threadteamid IS
NULL
AND channels.id = threads.
channelid;
UPDATE 847646
Time: 29744.608 ms (00:29.745)
**Backwards-compatibility:**
A previous version of Mattermost can run with the new schema changes
**Table locks or impact to existing operations on the table:**
Table locks - Threads table
위에 게시된 쿼리는 MySQL과 PostgreSQL 모두 Mattermost 업그레이드 전에 실행할 수 있습니다. 스키마 변경 후 마이그레이션이 즉시(0.78초) 완료됩니다. |
||
v7.7과 함께 제공되는 Calls 버전부터는 외부 RTCD 서비스를 사용할 때 최소 버전 요구사항이 있습니다. 이는 Calls가 외부 서비스를 사용하도록 구성된 경우, 고객이 먼저 RTCD를 최소 버전 0.8.0으로 업그레이드해야 하며, 그렇지 않으면 플러그인이 시작되지 않는다는 것을 의미합니다. |
||
v7.7.2에서는 메시지 우선순위 및 확인 기능이 모든 인스턴스에서 기본적으로 활성화됩니다. System Console에서 게시물 > 메시지 우선순위 로 이동하거나 |
||
v7.5 |
|
|
|
||
v7.3 |
Boards가 채널 기반에서 역할 기반 권한 시스템으로 이동하고 있습니다. 마이그레이션은 자동으로 실행되지만, 관리자는 업그레이드 전에 백업을 수행해야 합니다. 워크스페이스가 제거되었으므로 마이그레이션 전에 여러 보드의 구성원이었다면 이제 모두 동일한 사이드바 아래에 표시됩니다. |
|
v7.2 |
데이터를 더 엄격하게 만들기 위해 여러 스키마 변경으로 추가 데이터베이스 제약 조건이 적용됩니다. 아래 나열된 모든 명령은 8코어, 16GB RAM 머신에서 테스트되었습니다. 기록된 시간은 다음과 같습니다: PostgreSQL (131869 채널, 2팀):
MySQL (270959 채널, 2팀):
|
|
v7.1 |
새로운 구성 옵션 |
|
Mattermost v7.1은 새로운 열과 인덱스 형태로 스키마 변경을 도입했습니다. 스키마 변경에 대한 테스트 결과는 다음과 같습니다:
마이그레이션이 완료될 때까지 이 시간 동안 게시된 사용자의 반응이 데이터베이스에 반영되지 않도록 업그레이드 전에 다음 SQL 쿼리를 실행하여 MySQL:
PostgreSQL:
|
||
v7.0 |
중요: 세션 길이 구성 설정이 일 단위에서 시간 단위로 변경되었습니다. config.json 파일이나 데이터베이스 구성을 사용하는 인스턴스는 다음 값들이 자동으로 새로운 단위로 마이그레이션되지만, 환경 변수를 사용하는 인스턴스는 다음과 같이 변경해야 합니다:
|
|
MySQL 자체 호스팅 고객은 FileInfo 테이블에 많은 행이 있을 때 마이그레이션이 평소보다 오래 걸리는 것을 알 수 있습니다. MySQL의 경우 700,000행 크기의 테이블에 약 19초가 소요됩니다. PostgreSQL에 필요한 시간은 무시할 만합니다. 테스트는 |
||
시스템 콘솔 > 실험적 기능 > 기능 > 앱 바 활성화 를 통해 새로운 구성 설정이 활성화되면, 플러그인에 의해 등록된 모든 채널 헤더 아이콘이 새로운 앱스 바로 이동됩니다. 이는 새로운 레지스트리 함수를 명시적으로 사용하지 않더라도 마찬가지입니다. 자체 호스팅 배포의 경우 앱스 바 설정은 기본값이 |
||
|
||
접힌 답글 스레드 는 이제 일반적으로 사용 가능하며 새로운 Mattermost 서버에서 기본적으로 활성화됩니다. v7.0 이상으로 업그레이드하는 서버의 경우, 기능 활성화에 대한 자세한 정보와 지침은 이 문서 를 참조하세요. |
||
v6.7 |
새로운 인덱스 형태로 스키마 변경이 도입되었습니다. 다음은 이러한 스키마 변경으로 데이터베이스 쿼리 실행에 소요된 시간을 측정한 테스트 결과 요약입니다: MySQL 7M 게시물 - ~17초 (인스턴스: db.r5.xlarge) MySQL 9M 게시물 - 2분 12초 (인스턴스: db.r5.large) Postgres 7M 게시물 - ~9초 (인스턴스: db.r5.xlarge) 다운타임 없는 업그레이드를 원하는 고객은 업그레이드 전에 이 인덱스를 적용하는 것이 좋습니다. 이는 완전히 하위 호환되며 수동으로 실행할 때 테이블 잠금을 발생시키지 않고 테이블의 기존 작업에 영향을 주지 않습니다. 그렇지 않으면 쿼리가 업그레이드 프로세스 중에 실행되며 MySQL이 아닌 환경에서 테이블이 잠깁니다. 다음 명령을 실행하여 이 인덱스를 적용하세요: MySQL의 경우: Postgres의 경우: |
|
v6.7.1부터 |
||
v6.6 |
바인딩/폼 제출을 위한 앱스 프레임워크 프로토콜이 변경되어 단일 call 을 개별 submit, form, refresh, lookup 호출로 분리했습니다. 사용자가 자체 앱을 만든 경우 새 시스템으로 업데이트해야 합니다. |
|
이제 채널 관리자는 코드 작성 없이도 트리거 조건에 따라 자동으로 실행되도록 특정 작업 을 구성할 수 있습니다. 채널 작업 기능을 활용하려면 이전 Playbooks 릴리스를 실행하는 사용자가 Playbooks 인스턴스를 최소 v1.26으로 업그레이드해야 합니다. |
||
v6.6.2부터 |
||
v6.5 |
|
|
v6.5.2부터 |
||
v6.4 |
새로운 스키마 마이그레이션 시스템이 도입되었으므로 서버를 이 버전으로 업데이트하기 전에 데이터베이스를 백업하는 것을 강력히 권장합니다. 새로운 마이그레이션 시스템은 모든 기존 마이그레이션을 실행하여 새 테이블에 기록합니다. 이는 애플리케이션을 새 시스템으로 마이그레이션하기 위해 첫 실행에서만 발생합니다. 마이그레이션 정보가 저장되는 테이블은 MySQL에서 v6.4.0으로 업그레이드할 때 “Failed to apply database migrations” 오류가 발생하면 테이블 정렬과 기본 데이터베이스 정렬 사이에 불일치가 있다는 의미입니다. MySQL 8+ 시스템에서는 기본 정렬을 변경하여 업그레이드할 때 |
|
새로운 마이그레이션 시스템은 스키마 마이그레이션을 실행하기 위해 MySQL 데이터베이스 사용자에게 추가적인 EXECUTE, CREATE ROUTINE, ALTER ROUTINE 및 REFERENCES 권한이 필요합니다. |
||
v6.3 |
v6.3.3에서 |
|
v6.3.9부터 |
||
v6.2 |
채널 자동완성 결과에 비공개 채널이 포함됩니다. 자동완성을 위해 Bleve 또는 Elasticsearch 를 사용하는 고객은 새로운 결과를 얻기 위해 데이터를 재인덱싱해야 합니다. 이 작업은 시간이 오래 걸릴 수 있으므로 자동완성을 비활성화하고 백그라운드에서 인덱싱을 실행하는 것을 권장합니다. 완료되면 자동완성을 다시 활성화하세요. 참고 자동완성 결과에서 비공개 채널 이름은 채널 구성원만 볼 수 있습니다. |
|
v6.2.3에서 |
||
Mattermost Boards는 실시간 업데이트가 올바르게 표시되도록 |
||
v6.1 |
v6.1로 업그레이드할 때는 스키마 마이그레이션 분석 을 참조하세요. |
|
Bleve 인덱스가 scorch 인덱스 타입을 사용하도록 업데이트되었습니다. 이 새로운 기본 인덱스 타입은 효율성이 개선되어 인덱스가 훨씬 적은 디스크 공간을 사용합니다. 이 새로운 인덱스 타입을 사용하려면 서버 버전을 업그레이드한 후 정리 작업을 실행하고 System Console의 Bleve 섹션에서 재인덱싱을 실행하세요. Bleve는 여전히 이전 인덱스와 호환되므로 정리 및 재인덱싱을 실행하지 않아도 현재 인덱싱된 데이터는 정상적으로 작동합니다. |
||
쿼리 성능 향상을 위해 jobs 테이블에 복합 인덱스가 추가되었습니다. 대규모 jobs 테이블이 있는 일부 고객의 경우 이 작업이 오래 걸릴 수 있으므로, 업무 시간 외에 인덱스를 추가한 후 마이그레이션을 실행하는 것을 권장합니다. 100만 개 이상의 행이 있는 테이블은 업그레이드 전에 업데이트할 만큼 충분히 큰 것으로 간주할 수 있습니다.
|
||
v6.1.3에서 |
||
Mattermost Boards는 실시간 업데이트가 올바르게 표시되도록 |
||
v6.0 |
마이그레이션 시간이 더 길어질 것으로 예상됩니다.
1. 낮은 노력, 긴 다운타임 - 이는 v6 서버를 일반적으로 시작하는 일반적인 프로세스입니다. 이는 두 가지 의미가 있습니다: 마이그레이션 프로세스 중에 다양한 테이블이 잠겨 해당 기간 동안 해당 테이블이 읽기 전용이 됩니다. 둘째, 서버가 마이그레이션을 완료하고 애플리케이션을 시작하면 클러스터에서 다른 v5 서버를 실행할 수 없습니다. 2. 중간 노력, 중간 다운타임 - 이 프로세스는 서버에서 SQL 쿼리를 수동으로 실행해야 합니다. 테이블 잠금을 방지하기 위해 고객은 MySQL용 pt-online-schema-change 도구를 사용할 수 있습니다. Postgres의 경우 테이블 잠금이 매우 최소화됩니다. 장점은 쿼리가 많기 때문에 고객이 휴무 시간에 개별 쿼리를 실행하는 데 자신의 시간을 할애할 수 있다는 것입니다. #11을 제외한 모든 쿼리는 이 방식으로 안전하게 실행할 수 있습니다. 그런 다음 (1)의 일반적인 방법을 따를 수 있습니다. 3. 높은 노력, 낮은 다운타임 - 이 프로세스는 (2)의 모든 것이 필요하며, 쿼리 #11의 영향을 최소화하려고 시도합니다. 2단계를 따르고 실행 중인 v5 서버와 함께 v6를 시작한 다음 애플리케이션 로그를 모니터링하여 이를 수행할 수 있습니다. v6 애플리케이션이 시작되자마자 v5 노드를 종료해야 합니다. 이렇게 하면 다운타임이 몇 초로 최소화됩니다. 마이그레이션 중에 서버 프로세스가 종료되는 것을 방지하기 위해 systemctl을 통하지 않고 Mattermost를 직접 시작하는 것이 좋습니다. 이는 제공된 systemctl 서비스 파일의 Mattermost Kubernetes operator를 사용하는 고객은 위의 마이그레이션 정보를 인지하고 자신에게 가장 적합한 경로를 선택해야 합니다. (1)이 허용 가능하다면 operator를 사용한 일반 업그레이드 프로세스로 충분합니다. 최소 다운타임을 위해서는 일반 업그레이드 프로세스에 따라 Mattermost를 업데이트하기 전에 (2)를 따르세요. |
|
Mattermost 버전 >= 6.0.x로 업그레이드하려고 할 때 다음과 같은 오류가 발생할 수 있습니다: 이는 해당 열에 수동으로 수정해야 하는 잘못된 JSON 값이 있다는 의미입니다. 작동하는 것으로 알려진 일반적인 수정 방법은 모든 다음 단계를 따르세요:
그런 다음 Mattermost를 다시 시작해보세요. |
||
이 릴리스의 지원 중단 목록은 unsupported legacy releases 문서를 참조하세요. |
||
Focalboard 플러그인이 Mattermost Boards로 이름이 변경되었으며, v0.9.1(Mattermost v6.0과 함께 출시)이 이제 기본적으로 활성화됩니다. |
||
고급 로깅 구성 스키마가 변경되었습니다. 이는 5.x 버전과 비교하여 호환성이 깨지는 변경사항입니다. 업데이트된 documentation 을 참조하세요. |
||
“Mattermost”, “Organization”, “Mattermost Dark”, “Windows Dark”를 포함한 기존 테마 이름과 색상이 각각 새로운 “Denim”, “Quartz”, “Indigo”, “Onyx” 테마 이름과 색상으로 업데이트되었습니다. 기존 테마를 사용하는 사용자는 서버나 워크스페이스가 업그레이드된 후 약간 수정된 테마 색상을 보게 됩니다. 기존 “Mattermost”, “Organization”, “Mattermost Dark”, “Windows Dark” 테마의 테마 변수는 our documentation 에서 계속 접근할 수 있으므로, 원하는 경우 이러한 테마 변수를 사용하여 사용자 정의 테마를 만들 수 있습니다. 사용자 정의 테마는 이 변경의 영향을 받지 않습니다. |
||
플러그인에 대한 일부 호환성이 깨지는 변경사항이 포함되어 있습니다:
|
||
Mattermost Boards는 실시간 업데이트가 올바르게 표시되도록 |
||
v5.38.0 |
“config watcher”( |
|
v5.38은 Collapsed Reply Threads(Beta) 도입 이후 스레드와 채널 주변의 잘못된 멘션 수와 읽지 않은 메시지 수에 대한 수정사항을 추가했습니다. 이 수정은 SQL 마이그레이션을 통해 이루어지며, 대규모 데이터베이스의 경우 완료하는 데 몇 분이 걸릴 수 있습니다. |
||
Focalboard v0.8.2(Mattermost v5.38.0과 함께 출시)는 새로운 데이터베이스 연결 시스템으로 인해 Mattermost v5.37 이상이 필요합니다. |
||
v5.37.0 |
|
|
Collapsed Reply Threads 가 Mattermost Server v5.37 이상에서 Beta로 제공됩니다. 기능을 안정화하는 동안 버그가 발생할 수 있습니다. 특히 여기에 문서화된 알려진 문제 를 참고하세요. |
||
v5.37은 이모지 표준 v13.0을 지원합니다. 과거에 새로운 시스템 이름 중 하나를 사용하는 사용자 정의 이모지를 추가했다면, 시스템 이모지에 의해 덮어쓰기될 것입니다. 해결 방법은 사용자 정의 이모지 이름을 변경하는 것입니다. |
||
이제 모든 Mattermost 버전에서 Incident Collaboration의 일부 기능을 사용할 수 있습니다. 이 업데이트의 일환으로 Incident Collaboration는 최소 서버 버전 v5.37이 필요합니다. 각 버전에서 사용 가능한 기능에 대한 자세한 내용은 가격 정책 페이지 를 방문하세요. |
||
v5.37.8에서 |
||
v5.36.0 |
Gossip 클러스터링 모드가 이제 정식 출시되었으며 더 이상 옵션으로 사용할 수 없습니다. 모든 클러스터 트래픽은 항상 gossip 프로토콜을 사용합니다. 참고 고가용성 업그레이드의 경우 클러스터의 모든 노드는 단일 프로토콜을 사용해야 합니다. 기존 시스템이 현재 gossip을 사용하지 않는 경우, 클러스터의 다른 노드가 이전 버전을 사용하는 동안 하나의 노드를 업그레이드할 수 없습니다. 고객은 고가용성 업그레이드를 위해 gossip을 사용하거나, 모든 노드를 종료하고 업그레이드를 수행한 후 모든 노드를 다시 시작해야 합니다. |
|
Focalboard를 활성화하려면 사이드바 메뉴에서 Marketplace를 열고 Focalboard 플러그인을 설치한 다음 Configure 를 클릭하고 활성화한 후 저장하세요. NGINX 또는 Apache 웹 프록시 구성을 업데이트하세요. |
||
v5.35.0 |
Shared Channels와 Collapsed Reply Threads와 같은 새로운 기능에 필요한 백엔드 데이터베이스 아키텍처 도입으로 v5.35 릴리스(2021년 5월 16일)의 마이그레이션 프로세스 성능이 크게 영향을 받았습니다. 데이터베이스의 크기, 유형 및 버전에 따라 평소보다 더 긴 업그레이드 시간이 예상됩니다. 이는 몇 분(평균적인 경우)에서 수 시간(최악의 경우, MySQL 5.x 전용)까지 다양할 수 있습니다. 이 과정에서 데이터베이스 CPU 사용량이 중간에서 상당한 수준으로 급증할 것으로 예상됩니다. 마이그레이션의 성능 영향과 가능한 완화 전략 에 대한 자세한 내용을 확인할 수 있습니다. |
|
대량 사용자 가져오기 과정에서 사용된 기존 비밀번호 생성 로직이 상대적으로 취약했습니다. 따라서 관리자는 대량 가져오기 과정에서 생성되었고 비밀번호가 한 번도 변경되지 않은 모든 사용자의 비밀번호를 즉시 재설정하는 것이 좋습니다. |
||
v5.35.0에서 파일 검색 기능이 새로 도입되었습니다. 과거에 공유된 파일의 검색 결과는 콘텐츠 추출 명령 을 실행하여 데이터베이스에 이미 있는 파일의 콘텐츠를 추출하고 인덱싱할 때까지 불완전할 수 있습니다. Elasticsearch 또는 Bleve 검색 백엔드를 실행하는 인스턴스는 콘텐츠 추출이 완료된 후 대량 인덱싱을 실행해야 합니다. 자세한 내용은 ` 이 블로그 게시물 <https://mattermost.com/blog/file-search/>`_ 을 참조하세요. |
||
v5.34.1 |
v5.34.1은 v5.34.0으로 업그레이드할 때 MySQL 설치에서 타임아웃을 일으킬 수 있는 마이그레이션 문제를 수정합니다. v5.34.1로 업그레이드하면 v5.32.0에 예정되었던 누락된 마이그레이션도 실행될 수 있습니다. 이러한 추가 작업은 매우 큰 MySQL(버전 5.x) 설치에서 시간이 오래 걸릴 수 있습니다.
|
|
v5.33.0 |
이제 반응 삭제는 |
|
HTTP 버전 1.1 미만으로 수행된 WebSocket 핸드셰이크는 경고를 발생시키며, 서버는 WebSocket RFC를 준수하기 위해 버전을 1.1로 투명하게 업그레이드합니다. 이는 |
||
v5.32.0 |
|
|
Golang 클라이언트 API에 호환성이 깨지는 변경사항이 도입되었습니다: |
||
Go 버전을 v1.15.5로 업그레이드할 때 호환성이 깨지는 변경사항 이 도입되었습니다. LDAP 서버의 인증서에 Subject Alternative Name(SAN)이 없는 경우 AD/LDAP 동기화로 사용자 로그인이 실패합니다. AD/LDAP 서버에 SAN이 포함된 새 인증서를 생성하면 이 문제가 해결됩니다. |
||
TLS 버전 1.0과 1.1은 브라우저 벤더에 의해 더 이상 사용되지 않습니다. Mattermost 서버 v5.32(2월 16일)부터 이러한 TLS 버전으로 배포된 Mattermost 서버에 연결할 때 mmctl이 오류를 반환합니다. 시스템 관리자는 계속 사용하기 위해 명령에 명시적으로 플래그를 추가해야 합니다. TLS 버전 1.2 이상으로 업그레이드하는 것을 권장합니다. |
||
v5.31.0 |
모바일 앱 v1.42.0+의 경우, 서버 버전이 v5.30.0으로 보고되는 문제를 5.31.3에서 수정 했기 때문에 최소 서버 버전이 5.31.3으로 설정되었습니다. |
|
v5.29.0 |
2021년 1분기에 베타로 출시되는 Collapsed Reply Threads 를 지원하기 위해 새로운 구성 설정 |
|
재활성화되고 개선된 SAML 라이브러리를 위해 xmlsec1 기반 SAML 라이브러리를 비활성화했습니다. |
||
v5.28.0 |
서비스가 충돌할 때 이제 콘솔에 스택 트레이스만 덤프하는 대신 coredump를 생성합니다. 이를 통해 디버깅에 도움이 되는 충돌의 전체 정보를 보존할 수 있습니다. coredump에 대한 자세한 내용은 https://man7.org/linux/man-pages/man5/core.5.html을 참조하세요. |
|
새로운 서버 및 데스크톱 버전에서 사용 가능한 최신 제품 개선 사항에 대해 시스템 관리자와 최종 사용자에게 알리기 위해 제품 내 알림이 도입되었습니다. 제품 내 알림에 대해 자세히 알아보기 및 문서에서 이를 비활성화하는 방법을 확인하세요. |
||
재활성화되고 개선된 SAML 라이브러리를 위해 xmlsec1 기반 SAML 라이브러리를 비활성화했습니다. |
||
v5.27.0 |
재활성화되고 개선된 SAML 라이브러리를 위해 xmlsec1 기반 SAML 라이브러리를 비활성화했습니다. |
|
v5.26.0 |
v5.26에서는 Elasticsearch 인덱스를 재생성해야 합니다. 관리자는 Purge index 와 Index now 버튼을 사용하여 Elasticsearch를 재인덱싱하여 모든 변경 사항이 인덱스에 포함되도록 해야 합니다. 인덱싱 중에는 검색 기능이 제한될 수 있으므로, 몇 시간이 걸릴 수 있으므로 활동이 거의 없거나 없는 시간에 수행해야 합니다. |
|
키를 업데이트하려면 MySQL에서는 이 구성 설정의 변경사항이 적용되려면 먼저 전체 클러스터를 종료해야 합니다. 그런 다음 구성 변경을 수행하고 다시 시작해야 합니다. 클러스터에서는 모든 서버가 암호화를 완전히 사용하거나 사용하지 않아야 합니다. 부분적인 사용은 불가능합니다. |
||
SAML 설정 “Use Improved SAML Library (Beta)”가 강제로 비활성화되었습니다. |
||
PostgreSQL은 2020년 2월에 버전 9.4에 대한 장기 지원을 종료 했습니다. PostgreSQL 9.4가 더 이상 지원되지 않기 때문에 v5.26부터 Mattermost는 공식적으로 PostgreSQL 버전 10을 지원합니다. 새로운 설치에는 PostgreSQL 10+가 필요합니다. 현재 ESR을 포함한 이전 Mattermost 버전은 PostgreSQL 9.4와 계속 호환됩니다. PostgreSQL 9.4 및 모든 9.x 버전은 v5.30 릴리스(2020년 12월 16일)에서 완전히 지원 중단되었습니다. PostgreSQL 문서 의 업그레이드 섹션을 참조하세요. |
||
v5.25.0 |
Active Directory ADFS를 사용한 SAML 설정에서 “Relying Party Trust Identifier” 설정에 대한 일부 잘못된 지침이 수정되었습니다. 설정이 계속 작동하더라도 해당 설정을 수정 하는 것이 좋습니다. |
|
재활성화되고 개선된 SAML 라이브러리를 위해 xmlsec1 기반 SAML 라이브러리를 비활성화했습니다. |
||
v5.24.0 |
새로운 구성 설정 |
|
Enterprise Edition의 예를 들어, 평균 호출 지속 시간을 측정하기 위해 |
||
이모지 반응과 관련된 성능 문제를 수정함에 따라, 데이터베이스에 많은 반응이 있는 환경에서 스키마 업그레이드에 더 많은 시간이 소요되어 업그레이드 성능에 영향을 미쳤습니다. 이러한 환경에서는 사용량이 적은 시간에 스키마 마이그레이션을 수행하고, 가능하면 업그레이드 전에 미리 수행하는 것이 좋습니다. 이 마이그레이션은 Mattermost 서버가 완전히 시작되기 전에 발생하므로, 이 시간 동안 High Availability가 아닌 설치에서는 접근이 불가능합니다. 마이그레이션은 단일 SQL 라인이며, Mattermost 서버 재시작과 분리하기를 원하는 경우 MySQL/PSQL 명령줄 클라이언트를 통해 데이터베이스에 직접 적용할 수 있습니다. 완전히 이전 버전과 호환되므로 스키마 변경을 이전 버전의 Mattermost에 문제 없이 적용할 수 있습니다. 스키마 변경이 실행되는 동안(Reactions 테이블의 백만 행당 약 30초), 최종 사용자가 게시물에 반응하려고 하면 이모지 반응이 최종 사용자에게 로드되지 않습니다. MySQL: PostgreSQL: |
||
모바일 앱에서는 자동완성 드롭다운에서 LDAP 그룹 멘션(E20 기능)을 볼 수 없습니다. 사용자가 LDAP 그룹의 일부인 경우에도 알림은 계속 받게 됩니다. 그러나 그룹 멘션 키워드는 강조 표시되지 않습니다. |
||
“Use Improved SAML Library (Beta)” SAML 설정이 강제로 비활성화되었습니다. 기능적으로 동등한 |
||
v5.22.0 |
이모지 반응과 관련된 성능 문제를 수정함에 따라, 데이터베이스에 많은 반응이 있는 환경에서 스키마 업그레이드에 더 많은 시간이 소요되어 업그레이드 성능에 영향을 미쳤습니다. 이러한 환경에서는 사용량이 적은 시간에 스키마 마이그레이션을 수행하고, 가능하면 업그레이드 전에 미리 수행하는 것이 좋습니다. 이 마이그레이션은 Mattermost 서버가 완전히 시작되기 전에 발생하므로, 이 시간 동안 High Availability가 아닌 설치에서는 접근이 불가능합니다. 마이그레이션은 단일 SQL 라인이며, Mattermost 서버 재시작과 분리하기를 원하는 경우 MySQL/PSQL 명령줄 클라이언트를 통해 데이터베이스에 직접 적용할 수 있습니다. 완전히 이전 버전과 호환되므로 스키마 변경을 이전 버전의 Mattermost에 문제 없이 적용할 수 있습니다. 스키마 변경이 실행되는 동안(Reactions 테이블의 백만 행당 약 30초), 최종 사용자가 게시물에 반응하려고 하면 이모지 반응이 최종 사용자에게 로드되지 않습니다. MySQL: Postgres: |
|
채널 조정 설정 기능은 모바일 앱 버전 v1.30 이상에서 지원됩니다. 이전 버전의 모바일 앱에서는 적절한 권한 없이 게시물을 게시하거나 반응하려는 사용자에게 오류가 표시됩니다. |
||
|
||
“Use Improved SAML Library (Beta)” SAML 설정이 강제로 비활성화되었습니다. 기능적으로 동등한 |
||
v5.21.0 |
KVCompareAndSet, KVCompareAndDelete 및 KVList에서 키 값 만료를 준수합니다. 또한 Postgres에서 플러그인 키 값 경쟁 조건과 삭제된 키의 처리를 개선했습니다. |
|
“Use Improved SAML Library (Beta)” SAML 설정이 강제로 비활성화되었습니다. 기능적으로 동등한 |
||
v5.20.0 |
|
|
대화형 대화 상자의 부울 요소는 더 이상 문자열로 직렬화되지 않습니다. 호환성 변경을 피하려고 노력하지만, 이 변경은 v5.16에서 도입된 부울 요소로 웹 및 모바일 앱이 모두 작동할 수 있도록 하는 데 필요했습니다. |
||
v5.19.0 |
|
|
v5.18.0 |
모바일 앱에서 게시물을 읽지 않음으로 표시하려면 v1.26 이상이 필요합니다. v5.18을 사용 중이지만 모바일이 v1.25 이전 버전인 경우, 웹앱/데스크톱에서 게시물을 읽지 않음으로 표시하면 앱이 다음에 시작되거나 전경으로 가져올 때만 모바일에 반영됩니다. |
|
|
||
관련 Websocket 이벤트에서 |
||
|
||
v5.16.0 |
Internet Explorer(IE11) 지원이 제거되었습니다. 자세한 내용은 이 포럼 게시물 을 참조하세요. |
|
Mattermost Desktop v4.3.0 릴리스에는 비보안 URL |
||
게스트 계정 을 활성화할 때 사용자 초대 권한이 있는 모든 사용자는 기본적으로 게스트를 초대할 수 있습니다. 시스템 관리자는 시스템 콘솔 > 권한 구성 을 통해 각 역할에서 이 권한을 제거해야 합니다. Mattermost 서버 버전 5.17에서는 시스템 관리자만 게스트 초대 권한을 자동으로 받게 되지만, 데이터베이스 마이그레이션 프로세스로 인해 이 수정사항은 5.16에 적용되지 않습니다. |
||
v5.14.0 |
웹훅은 이제 사용자가 웹훅 생성자이거나 시스템 관리자인 경우에만 표시됩니다. |
|
Google+에서 Google People로 업데이트됨에 따라 시스템 관리자는 업데이트된 문서 에 따라 |
||
v5.12.0 |
플러그인이 |
|
시스템 콘솔 > 링크 미리보기 활성화 가 활성화되어 있지 않으면 이미지 링크와 YouTube 미리보기가 표시되지 않습니다. Mattermost 서버가 인터넷에 연결되어 있고 미리보기가 표시될 것으로 예상되는 웹사이트에 네트워크 액세스 권한이 있는지 확인하세요. 자세한 내용은 여기 를 참조하세요. |
||
|
||
그룹 동기화를 통한 팀/채널 관리 강제 적용 기능이 추가되었습니다. 그룹 동기화가 활성화된 경우 업그레이드 시 모든 팀 및 채널 관리자 지정이 손실됩니다. 업그레이드 전에 팀 및 채널 관리자를 해당 팀 및 채널에 해당하는 관리자별 LDAP 그룹에 추가하는 것이 좋습니다. 업그레이드 후에는 해당 그룹을 팀 또는 채널 관리자 역할과 역할 동기화해야 합니다. |
||
v5.11.0 |
통합에서 이 변경은 |
|
v5.10.0 |
config.json의 |
|
v5.9.0 |
보안 강화를 위해 |
|
Mattermost 애플리케이션 서버의 공용 IP는 Open Graph 메타데이터, 웹훅 또는 슬래시 명령과 같은 신뢰할 수 없는 외부 요청의 맥락에서 추가 보안 강화를 위한 예약된 IP로 간주됩니다. 자세한 내용은 문서 를 참조하세요. |
||
v5.8.0 |
로컬 이미지 프록시가 추가되었으며, 클라이언트 내에 표시되는 이미지는 이제 |
|
v5.6.0 |
내장 WebRTC가 제거되었습니다. 자세한 내용은 여기 를 참조하세요. |
|
DELETE FROM PublicChannels;
INSERT INTO PublicChannels
(Id, DeleteAt, TeamId, DisplayName, Name, Header, Purpose)
SELECT
c.Id, c.DeleteAt, c.TeamId, c.DisplayName, c.Name, c.Header, c.Purpose
FROM
Channels c
WHERE
c.Type = 'O';
위의 쿼리는 권한이 있는 참고 실험적인 |
||
v5.4.0 |
Mattermost 모바일 앱 버전 1.13 이상이 필요합니다. 이전 모바일 앱 버전에서는 파일 업로드가 실패합니다. |
|
특정 업그레이드 시나리오에서 일반 아래의 사용자 및 팀 에 있는 새로운 팀 관리자가 다른 사람의 게시물을 편집할 수 있도록 허용 설정이 True 로 설정될 수 있으며, Mattermost 5.1 이전 버전과 새로운 5.4+ 설치의 기본값은 False 입니다. |
||
v5.3.0 |
Elasticsearch가 활성화된 서버에서는 해시태그 검색이 대소문자를 구분합니다. |
|
v5.2.0 |
v4.1 - v4.4에서 v5.2 이상으로 직접 업그레이드하고 Jira가 활성화된 서버는 업그레이드 후 Jira 플러그인을 다시 활성화해야 합니다. |
|
v5.1.0 |
|
|
v5.0.0 |
모든 API v3 엔드포인트가 제거되었습니다. 통합 기능을 API v4로 마이그레이션하는 방법은 문서 를 참조하세요. |
|
더 명확한 설치 및 업그레이드 경험을 위해 |
||
계정 설정 > 알림 > 데스크톱 알림 에서 데스크톱 알림 지속 시간을 구성하는 Mattermost 사용자 설정이 제거되었습니다. |
||
GET 요청을 받도록 구성된 슬래시 명령어는 요청 본문 대신 쿼리 문자열에 페이로드가 인코딩됩니다. 이는 표준 HTTP 요청과 일치합니다. 가능성은 낮지만, GET 요청을 잘못 사용하는 사용자 정의 슬래시 명령어가 작동하지 않을 수 있습니다. |
||
자동 링크를 위한 프로토콜 유형을 허용 목록에 추가하는 새로운 |
||
permanent APIv4 delete team 매개변수 <https://api.mattermost.com/#tag/teams%2Fpaths%2F~1teams~1%7Bteam_id%7D%2Fput>`__ 를 비활성화하는 새로운 |
||
사용되지 않는 |
||
이 릴리스는 기본값인 4000자보다 긴 게시물 메시지를 지원하지만 수동 데이터베이스 마이그레이션이 필요할 수 있습니다. 이 마이그레이션은 완전히 선택 사항이며, 16383자까지의 게시물 메시지를 활성화하려는 경우에만 필요합니다. 대부분의 설치에서는 마이그레이션이 필요하지 않거나 기존 제한이 충분합니다. 5.0.0으로 업그레이드한 후 현재 게시물 제한을 확인하려면 시작 시 로그 메시지를 확인하세요:
5.0.0부터 최대 게시물 메시지 크기는 16383(멀티바이트) 문자입니다. 로그에 이 제한보다 작은 숫자가 표시되고 더 긴 게시물 메시지를 활성화하려면 아래에 설명된 대로 데이터베이스를 수동으로 마이그레이션해야 합니다. 이 마이그레이션은 더 큰 MySQL 데이터베이스를 마이그레이션하려면 데이터베이스에 연결하고 다음을 실행하세요:
PostgreSQL 데이터베이스를 마이그레이션하려면 데이터베이스에 연결하고 다음을 실행하세요:
Mattermost 인스턴스를 재시작하세요. |
||
Enterprise E20 배포에서는 Team Override Schemes 를 사용하기 전에 |
||
v4.10.0 |
팀을 링크를 통해 다시 참여할 수 있었던 버그 수정으로 인해 이전 이메일 초대 링크가 더 이상 작동하지 않습니다. 팀 초대 링크 대화상자에서 복사한 팀 초대 링크, 비밀번호 재설정 링크 및 이메일 확인 링크는 영향을 받지 않으며 여전히 유효합니다. |
|
System Console > Logs 및 System Console > Logging > File Log Directory 에 지정된 |
||
팀 사이드바에서 투명한 팀 아이콘은 흰색 배경으로 채워집니다. |
||
SAML 인증이 활성화된 서버는 피크 시간이 아닌 시간에 업그레이드해야 합니다. 로그인 문제를 방지하기 위해 SAML 이메일 주소가 소문자로 마이그레이션되며, 이로 인해 평소보다 업그레이드 시간이 더 오래 걸릴 수 있습니다. |
||
PostgreSQL 데이터베이스를 사용하고 비밀번호에 특수 문자(예: |
||
v4.9.0 |
Docker와 함께 Mattermost의 프로덕션 사용을 개선하기 위해 Docker 이미지는 이제 비루트 사용자로 실행되며 포트 8000에서 수신 대기합니다. 기존 설치의 중요한 변경 사항에 대해서는 업그레이드 지침 을 참조하세요. |
|
여러 구성 설정이 데이터베이스의 역할로 마이그레이션되었으며
|
||
역할 기반 권한 시스템으로의 마이그레이션을 위해 |
||
프록시 서버 없이 Let’s Encrypt를 사용하는 경우, Forward80To443 포트 80을 443으로 전달하는 경우, ListenAddress |
||
v4.6.2 |
프록시 서버 없이 Let’s Encrypt를 사용하는 경우, Let’s Encrypt 인증을 완료하기 위해 방화벽을 통해 포트 80을 전달하고 Forward80To443 |
|
v4.4.0 |
|
|
LDAP 동기화가 이제 이메일에 의존합니다. AD/LDAP 서버의 모든 사용자가 이메일 주소를 가지고 있거나 Mattermost에서 계정이 비활성화되어 있는지 확인하세요. |
||
v4.2.0 |
Mattermost는 이제 일반 텍스트 콘텐츠 유형을 포함한 여러 콘텐츠 유형을 처리합니다. 통합이 생성된 메시지를 렌더링하는 대신 JSON 페이로드 데이터를 갑자기 출력하는 경우, 이전 동작을 유지하기 위해 통합이 |
|
기본적으로 Open Graph 메타데이터, 웹훅 또는 슬래시 명령에 사용되는 사용자 제공 URL은 내부 네트워크에 사용되는 루프백 또는 링크 로컬 주소를 포함한 예약된 IP 주소에 연결할 수 없습니다. 이 변경으로 인해 테스트 환경에서 http://127.0.0.1:1021/my-command와 같은 URL을 가리키는 개인 통합이 중단될 수 있습니다. 개인 통합을 이러한 URL로 가리키는 경우, 로컬 환경에서 AllowedUntrustedInternalConnections config setting 설정을 통해 이러한 도메인, IP 주소 또는 CIDR 표기법을 화이트리스트에 추가할 수 있습니다. 권장되지는 않지만 프로덕션 환경에서도 주소를 화이트리스트에 추가할 수 있습니다. 자세한 내용은 documentation to learn more 를 참조하세요. 푸시 알림, OAuth 2.0 및 WebRTC 서버 URL은 신뢰할 수 있으며 이 설정의 영향을 받지 않습니다. |
||
업로드된 파일 첨부 파일은 이제 일별로 그룹화되어 파일 스토리지 시스템의 |
||
Mattermost |
||
v4.0.0 |
(고가용성 전용) 기존 |
|
v3.9.0 |
보안 변경으로 인해 이전 이메일 초대 링크, 비밀번호 재설정 링크 및 이메일 인증 링크가 더 이상 작동하지 않습니다. 팀 초대 링크 대화상자에서 복사한 팀 초대 링크는 영향을 받지 않으며 여전히 유효합니다. |
|
v3.8.0 |
프록시 구성에 변경이 필요합니다. NGINX를 사용하는 경우:
NGINX 이외의 프록시를 사용하는 경우 해당 프록시의 구성에 동일한 변경을 적용하세요. |
|
보안 관련 변경으로 인해 시스템 콘솔의 설정을 확인해야 합니다.
|
||
이전 CLI 도구와의 하위 호환성이 제거되었습니다. 이전 CLI에 의존하는 스크립트가 있는 경우 new CLI 를 사용하도록 수정해야 합니다. |
||
v3.6.0 |
열 수 있는 최대 파일 수를 업데이트합니다.
|
|
(Enterprise 전용) Public 및 Private 채널 관리를 제한하는 이전 |
||
v3.4.0 |
공개 링크가 활성화된 경우 기존 공개 링크는 더 이상 유효하지 않습니다. 이는 이전 버전에서 Public Link Salt가 재생성될 때 기존 공개 링크가 무효화되지 않았기 때문입니다. 이러한 링크를 게시한 모든 위치를 업데이트해야 합니다. |
|