e-tipsmemo

ごった煮

growiのデータ引っ越し

今までQNAPのTS-453BeのContainer Stationを使用してgrowiをホスティングしていしたが、CPUのスペック不足や検索機能の不全など不便な側面が出てきたので、新しく組み立てたPCにデータを載せ替えることにした。

PCスペック

CPU Ryzen 9 7950X3D
MB MAG X670E TOMAHAWK WIFI
MEM コルセアの32GB
SSD ADATAの1TBのもの
ケース MODEL4 King Arthur White

最近は前面がファンを取り付けるケースが主流で、上面にUSBが差し込めるタイプが置くなっている。
上面にUSBがあると埃が入りそうであまり好んでいないのでこのケースを選んだが、このケースはパーツを組み付けるのが非常に手間であった。

準備

マニュアル
データのアーカイブ | GROWI Docs

データの移行元と移行先のツールバージョンが一致している必要があるので、
バージョンを確認する。

growi 5.1.11
Elasticsearch 7.17.1
mongodb 4.4

growiは管理ページからバージョンを確認できる。
elasticsearchはdocker execでバージョンを確認
mongodbはdocker-compose.ymlに書いてある。

同じdocker-compose.ymlファイルを使用すればおなじバージョンを使用することが可能。

growi-docker-composeのgithubをクローンした場合、Dockerfileのバージョン部分を手書きで合わせておく必要がある。

#FROM weseek/growi:${version}
FROM weseek/growi:5.1.11

データエクスポート


とりあえずエクスポートできるものはすべてしておく。
zipファイルができるのでページからダウンロードする。

データインポート

データアーカイブの上にデータインポートの項目があるのでそこからzipファイルをアップロードし、インポートする項目を選択できる形式になっている。
インポートする項目を選択する方法は、一括チェックなどがあるが、
どのようにインポートするか(Insert/Upsert/Flush and Insertなのか)を選ぶのをポチポチやらないといけないのがめんどくさかった。
まっさらな環境にインポートするので、当然Flush and Insertでいいのかと思ったら以下のIssueのようなエラーがでて何もできなかった
Bug:Failure to import Page Collection in Growi Archive/Import Page Collections in feature Insert by default · Issue #7132 · weseek/growi · GitHub

代わりに以下のようにUpsertで行ったところメンテナンスモードではないので事項できないというエラーが出たので、メンテナンスモードに入ってから再度行ったらインポートされた。

画像データ

growiのページに画像を挿入するとき、ファイルアップロードをlocalにしていると、データエクスポートのときにページに入れた画像ファイルなどはzipファイルには入ってないので手動でコピーする。

 # - FILE_UPLOAD=mongodb   # activate this line if you use MongoDB GridFS rather than AWS
      - FILE_UPLOAD=local # activate this line if you use local storage of server rather than AWS
      - MATHJAX=1 # activate this line if you want to use MathJax


画像ファイルは、docker-comopse.ymlのgrowiのデータvolumeのパス以下のuploadsをそのまま同じ形で配置すればいいはず


アーカイブしたzipデータをインポートした直後は、画像が表示されないが、
時間が経つと画像が表示された。(なんで?)
アーカイブデータにuploads/attachmentも含まれるようになったらうれしい。

最後に、もとのページと目視でページ数が一致するかだけを見てよさそうだとなった
QNAPでgrowi運用すると若干重かったが、Ryzen 9 7950X3DのPCで運用すればスペックは持て余しているが、まったくストレスを感じなくなった。