MattermostへのSlackログのインポート
Migration guide — Mattermost documentation
このページのMigrate from Slackの手順にしたがってSlackのエクスポート形式からMattermostのbulk export形式に変換し、mmctlを使ってアップロード・インポートを行おうとした。
Slackログの変換やMmctlは、Mattermostのサーバーとは別のPCで実行しているが、ローカルネットワークで接続されている。
問題
mmctl job show <job-id>
で見ると次のような文面が含まれていた。
error:We could not count the users. — importMultiplePostLines: Unable to save the Post., failed to save Post: pq: invalid byte sequence for encoding "UTF8": 0x00
どうやらPostgreSQLに記録しようとした文字列に0x00
という不正なバイトが含まれていたらしい。
よくわからなかったのでjsonlファイルを半分半分にして2分探索していったところ、\u0000
という文字列が(何度も)含まれる発言が1つあった。なので、その中の\u0000
をすべて削除したところ、インポートはうまくいった。
結局、大元のSlackのエクスポートファイルにも\u0000
存在していたので、謎ではあるが、mmetlやMattermostは悪くなさそうという結論になった。
そのほか
2分探索で原因を探るために大量のインポート用のzipファイルをMattermostにアップロードしてしまったので、これを消したい。
Dockerでインストールした場合、mmctl import upload
でアップロードしたファイルは(コンテナ外から見て)volumes/app/mattermost/data/import
にあるので、普通に消せばいい気がする。