現在使っているmoinmoinはバージョン1.5.8これを1.8までアップグレードしたい。すでにデータ量も増えているし複数人で使っているから慎重に行う必要がある。http://moinmo.in/RickVanderveer/UpgradingFromMoin17ToMoin18によれば1.5から一気に1.8に行くのではなく一歩ずつ進むのがよいらしいが、一気に行くことも不可能ではない。そしてできればMercurialを使いこなして今後のアップグレードを楽にしたい。

http://moinmo.in/MoinMoinDownloadから入手できる最新リリースはmoin1.8.3。

うまくアップグレードできるかどうか、まずは違うPCでテストすることにした。以下、http://moinmo.in/HelpOnInstalling/ApacheOnWin32にしたがってmoinmoinを一から構築する。apache_2.0.63-win32-x86-no_ssl.msipython-2.5.4.msiをダウンロードし、インストール。http://localhostApacheの稼動を確認。moin-1.5.9.tar.gzを+Lhacaで解凍、moin-1.5.9フォルダをTEMPに移動。ファイル名を指定して実行からcmdを起動。cd C:\TEMP\moin-1.5.9でmoinフォルダに移動。C:\Python25\python setup.py install --record=install.logでmoinのsetupを実行。Python25\share下にmoinがあることを確認。Python25\Lib\site-packagesにmoinがあることを確認。


cd C:\
md Moin
md Moin\mywiki
md Moin\mywiki\data
md Moin\mywiki\underlay
cd \Python\share\moin
xcopy data C:\Moin\mywiki\data /E
xcopy underlay C:\Moin\mywiki\underlay /E
copy config\*.* C:\Moin\mywiki\*.*
copy server\*.* C:\Moin\mywiki\*.*
を実行。
C:\Moin\mywiki下のwikiconfig.pyでdata_dir = r'C:\Moin\mywiki\data'と data_underlay_dir = r'C:\Moin\mywiki\underlay'とする。C:\Moin/mywiki下のmoin.cgiの最初の行を #! C:/Python/pythonとする。Apacheのconfフォルダのhttpd.confに以下の2行を追加。

Alias /moin_static160/ "C:/Python25/share/moin/htdocs/"
ScriptAlias /mywiki "C:/Moin/mywiki/moin.cgi"
Apacheをrestartし、http://localhost/mywikiを表示。テキストは表示されるが、デザインがおかしい。ロゴも表示されない。Aliasのところを/moin_static160/ではなく/wiki/としたら正しく表示された。

さて、http://www.codereading.com/notebook/moin.cgi/MoinMoinTipsでは1.5から1.8へ一気にアップデートすることに成功しているようなので、自分も1.8へのアップグレードを試みる。まずC:\Moin以外のMoin関連のファイルを消去する(Python25\shareとLib以下のフォルダ)。C:\Python25\python setup.py install --record=install.logでmoinのsetupを実行。C:/Moin/mywiki下のwikiconfig.pyを新しいものに入れ替える。url_prefix_static = '/moin_static183'に変更しておく。sys.path.insert(0, r'C:/Moin/mywiki/wikiconfig.py')とする。その他は1.5のセッティングを継承させる。serverフォルダのその他のファイルをすべてC:/Moin/mywikiに上書きコピーする。intermap.txtをアップデートする。


C:\Python25\python C:\Python25\Lib\site-packages\MoinMoin\script\moin.py --config-dir=C:\Moin\mywiki --wiki-url=localhost\mywiki migration data
を実行する。dataフォルダにあるrename1.txtをチェックする。必要なら書き換えて、rename2.txtとして保存。再度上記コマンドを実行。


C:\Python25\python C:\Python25\Lib\site-packages\MoinMoin\script\moin.py --config-dir=C:\Moin\mywiki maint cleancache
でキャッシュを掃除する。

apachehttpd.confのAliasを/moin_static183/ "C:/Python25/share/moin/htdocs/"に変更。apacheを再起動。

http://localhost/mywikiwikiにアクセス。一応、ちゃんと表示された。マクロも[[]]表記から<<>>表記に書き換わっている。ただし、Recent changesなどがすべて消えている。Editはできるが新しいページの作成ができない。なにかおかしい。。。

RecentChangesのページは、


Icon(diffrc)
marks older pages that have at least one backup version stored (click for an author diff)

Icon(updated)
marks pages edited since you set your bookmark (click for a bookmark diff)

Icon(new)
marks pages created since you set your bookmark, and were not edited after creation

Icon(deleted)
marks page deletions
こんな表示になっている。

Helpを検索したところ、新しいページを作ろうとするとAction(edit,Create new empty page)となって新しいページを作れないという症状が報告されていた。これはunderlayのフォルダを入れなおすことで解決するとのこと。underlayのフォルダも1.8のに入れ替えたはずだったが、とにかくやってみる。そしたら解決した。ただし、RecentChangesページの問題は解決しない。

RecentChangesの問題は、data/pagesのフォルダにあるRecentChangesのフォルダを削除したら解決した。おそらく、underlayの入れ替えに失敗したときにRecentChangesのページにRevisionが作成されてしまい、その後underlayに読みに行かなくなっていたのではないか。