今まで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で運用すればスペックは持て余しているが、まったくストレスを感じなくなった。