Trac のバックエンドの DB を SQLite から PostgreSQL に移行してみました。
Windows 2003にPostgreSQLをインストールするのに、まず一苦労。
何の文字コードが正しいんだろう。と。とりあえず、デフォルトの"C"でインストール。
trac-admin で Tracの環境を作る前に、Trac用のデータベースを作成。
Trac の 環境を作るのに成功して、さて、データの移行ということで、まずはSQLiteのデータをダンプ。
ダンプしたら、CREATE TABLE 文 や INSERT文 がたくさん書いてあったので、このままPostgreSQL
で実行すればいいんだ!か~んたん。
と思ったのが、つらいつらいデータ移行の始まりでした。
まず、ダンプしたデータのCREATE TABLE 文は削除。(trac-adminで環境を作ったときに、テーブルも作ってるから、そっちを使うことにした。べつに、trac-adminが作ったテーブルをdropしてもいいと思うけど)
いくつかのテーブルにはTrac の初期値が入っているので、それはdelete。
ここまでは簡単。
さて、INSERT文の文字列は、「’(シングルクォーテーション)」で囲まないといけないんだけど、これがTrac のWiki フォーマットの太字や斜体 のフォーマットと重なるのです。これを全部、「¥(バックスラッシュ)」でエスケープ。文字列中の「¥(バックスラッシュ)」も「\\」とエスケープしなければなりません。
それで、やっとINSERTが完了。
この方法で、INSERTしないといけないのは、wiki と リポジトリ 関係以外 のテーブルで、wiki については、元の環境から trac-admin を使って、dumpして、新しい環境にload し、リポジトリに関しては、trac-admin でresync した方が簡単。
0 件のコメント:
コメントを投稿