May 30, 2004

MovableType 2.64 の Berekeley DB から SQL への移行

NetBSD 2.0E(current) にアップデートしたら、Berkeley DBのせいか、MovableTypeとすりあわせが悪くなった感じがするので、覚悟を決めて MySQLに移行しました。

やることは、それほど手間ではなくて、

  • MySQL をセットアップする
  • MovableType 用のDBを作る
  • 作ったDBにアカウントを足す
  • MT2.x の Upgrade パッケージに入っている mt-db2sql.cgi を実行する

これだけです。最初のDBのセットアップは、やったことがない人は一苦労かもしれませんが、NetBSDの pkg 使う限りでは、以下の手順で mysql4-server, p5-DBD-mysql を入れればOK。

 # cd /usr/pkgsrc/mysql4-server
 # make install
 # make clean
 # cd /usr/pkgsrc/p5-DBD-mysql
 # make install
 # make clean

 # cp /usr/pkg/etc/rc.d/mysqld /etc/rc.d
 # vi /etc/rc.conf				-> mysqld=YES を追加
 # reboot					-> mysqld をあげられればOK

 # mysqladmin -u root password 'root-pass'	-> root password 設定

ここまでで、設定は終了。 続けて、MovableType用のDBを作り、アカウントを作成
 # mysqladmin -u root -p create blogdb
 # mysql -u root -p
 Enter password: 
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 28 to server version: 4.0.18

 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

 mysql> grant select,insert,update,delete,create on blogdb.* to bloguser@localhost identified by 'パスワード';
 Query OK, 0 rows affected (0.01 sec)

 mysql> Bye

最後に、mt-db2sql.cgi を実行

  • mt-db2sql.cgi を、MovableType 2.6xの upgrade 版のアーカイブから取 り出し、mt.cgi と同じディレクトリに置く。(当然、mt.cgi とモードは合わせる)
  • mt-db-pass.cgi に、DBパスワードを入れる(注意: パスワードだけ。ほ かに余計なものは入れない
  • mt.cfg で、ObjectDriver, Database, DBUserを設定する。ここでは、DBはmysql、DB名はblogdb、DBユーザ名は bloguser としているので、以下のように設定する。
    ObjectDriver DBI::mysql
    Database blogdb
    DBUser bloguser
    
  • mt-db2sql.cgiをBrowser経由で実行します

これで終了なのですが、私の場合、テンプレートを外部ファイルとリンクしていて、このファイルを読めないといってエラーが出てしまったので、外部ファイルリンクを予め全部取り除いてから、もう一度 mt-db2sql.cgi を実行したら、うまくいきました。

多少参考になるのは、以下のリンクです。

Lolipop の移行の説明
http://lolipop.jp/?mode=manual&state1=other&state2=movable2&PHPSESSID=f9006d285fd4f2fbe7645690fa866bfc

MovableTypeのMySQL対応の顛末
http://salvageship.dropcontrol.com/2003/07/movabletypemysq.html

MovableTypeのMySQL対応の顛末その2
http://salvageship.dropcontrol.com/2003/07/movabletypemysq_1.html

Salvageship での説明では、うまくいっていなかったようですが、2.6以降でやるなら、うまくいくのではないかという感じですね。

ちなみに、私がはまったのは、上記に加えて、upgrade版のMTが入手できなかったことです。(SixApartは、もう新しいの配ってない)なんとか探しました。。

Posted by shigeya at 07:44 PM | PermaLink | Comments (2) | TrackBack (0)

May 22, 2004

subversion関連メモ

久々のエントリです。

subversionを使ってみることにしたので、少し情報を整理しようとおもいます。このエントリで、少しまとめようと。(メモ状態なので、書式は勘弁。あとで別にきれいにまとめます)

マスタサイト:
http://subversion.tigris.org/

マニュアル:
O'Reilly から出版される予定の解説本が、Freeで PDF/HTML等で配布されている。
http://svnbook.red-bean.com/
(現在、288ページ - revision 9837)
日本語訳している人もいる (http://subversion.bluegate.org/ - revision 9813) subversion-jpメーリングリストあり。

関連記事:

@IT 次世代プロトコルWebDAVの可能性 - 技術仕様徹底解説 -
http://www.atmarkit.co.jp/flinux/special/webdav/webdav01a.html

Net上での記事:
鵜飼さんの UNIX Userでの記事(2003年8月号)
http://ukai.jp/Articles/2003/uu-svn/index.html

subversionに対する批判に対する反論(和訳)
http://subversion.bluegate.org/svn-anti-fud-ja.html

CVSユーザのためのSubversionガイド
http://slashdot.jp/journal.pl?op=display&uid=12&id=200792

(wakatomoさんって、たぶん、上記の@ITの人のようだ。)

Tips:

NetBSDで使うには:
NetBSD の pkgsrc でビルドすると、いろんなものがビルドされる。
これは、WebDAV ライブラリの neon が使われていて、こいつが結構色々使っているからとか、swigつくるからとか、いろいろあります。結構色々作られてしまう。

devel/subversion = devel/subversion-base + py-subversion + ap2-subversion + p5-subversion なので、特に理由なければ、これを入れるのが良し。

CVS からのマイグレーション:
devel/cvs2svn を突っ込む(on NetBSD)

また、まだ 1.0 quality で無ということなので、要注意。
Python(>= 2.0)と、PythonのBerkeley DB extensionが必要(devel/py-bsddb3)

あと、svn-revision.db という dbm ファイルを使うのだけれど、これが相対パス(つまりカレント)につくるっぽく、どっかで、chdir してるため、reopen できなくなっている。そのため、cvs2svn の

SVN_REVISIONS_DB = 'cvs2svn-revisions.db'

という行を、絶対パスにかえる(/var/tmp/ 頭につけるとか)すると、動くようになる。
あと、--existing-svnrepos はどうもちゃんと効かない感じ。

/home/svn/shigeya-rc を削除してから、

cvs2svn -s /home/svn/shigeya-rc /home/shigeya/tmp/private/rc

は、動いた。終わった後に、apache から読み書きできるようにすることを忘れないように。

ただし、trunk/trunk の下にcommitされている。。ここいらは、マニュアルちゃんと読んでからか。。


テスト:
「svn ls HTTP-PATH」が、便利。
dav_svn_moduleをapacheに入れているなら、repositoryのURLをブラウザで突けば、
素直にブラウズできる(ただし、headだけ。設定なにかあるのかもしれないけど。)


Windows:
Tortoise SVN
http://tortoisesvn.tigris.org/

O'Reilly本は、亀の絵だからのようである。


雑感:
個人的に、最大の問題は、スクリプト類がひたすらPythonで書いてある点。
Python知らないと、辛いことがあるような気がする(現に、cvs2svnでちょっと苦労した)。
Pythonは、覚える気が全くないので、どうしたものか(言語マニアはやめて久しいので)。

cvs2svn は --dumponly が動かない。-s でやると動く。。また、鵜飼さんの記事でかかれいてる
-n オプションは、無くなっちゃったようなので、注意。

Posted by shigeya at 10:41 PM | PermaLink | Comments (3) | TrackBack (0)