2009年1月9日金曜日

[PC][Linux]Amarok2のデータベースは確かにMySQLだったが・・・

ちょっくら私の予想とは違う形でデータベースが構築されてました。
相変わらずタグデータの破損が頻出するので、いっそのことデータベースを吹っ飛ばして再構築しようとしたんですね。
で、MySQLのAmarok用データベースを一応バックアップ。SQL文としてバックアップし、さらにデータベースファイルそのものもバックアップして準備盤端。drop命令にてデータベースを削除後、再度同じ名前でデータベース生成。権限も移譲した上でAmarok再起動。
が、データが普通に残っているじゃありませんか! データベースを吹っ飛ばしたはずなので、少なくともAmarok1系の時にAmazonから自動取得させたジャケット画像は保存先パスと紐付けができないために表示できないはず。なのに普通に表示してる・・・。
そいつは変だということで、$HOME/.kde/share/apps/amarok以下を覗いてみる事に。
するとそこに、なんとmysqleってな怪しげなディレクトリがあるじゃないですか。確かAmarok1.4のときはそんなものなかったはず・・・。
しかもその中を見てみると、MySQLのデータベースディレクトリ構造そのものなんですよ。my.cnfファイルもあるし。
つまるところ、Amarok2からはMySQLを内包しているっぽいんです。MySQLサーバがインストールされていなくても使えるのか、はたまたmy.cnfを別途呼び出して、データベースの保存先をユーザディレクトリにしているのかどっちかは分かりませんが、Amarok1系で必要だったMySQLのデータベース生成の手間は必要ないということのようです。SQLiteを完全に置き換えたって感じですね。一般ユーザが気にすることじゃないと。
ということで、$HOME/.kde/share/apps/amarokをリネームし、再度Amarok起動。
今度はデータベースがなくなってるのでまっさら。再構築したところ、おかしな挙動は今のところ見受けられません。
Amarokはまだ1系がβ版だったころから使っており、その頃には特にMySQLのデータベースの文字コード指定はされていなかったため、私が使っていたデータベースの文字コードがおかしかったのかもしれませんね。一応インポートはできたけど、微妙にずれてしまうことがあったのはそのせいかもしれません。想像に過ぎないんですが。
初回起動時のインポートがめっちゃ早かったのは、変換も何もせずデータベースファイルをコピーしてきたからじゃないのかなぁと思ったり。私の登録している曲数は約2500ですから、情報量としては知れてますしねぇ。
ただ、現状では問題が出ていませんが、あくまでタグデータがずれるのは新しく楽曲をデータベースに追加したあとなのでまだ油断できません。再構築後には1曲しか増やしてませんので。
何はともあれ、再構築は簡単にできるので、おかしくなったら再構築ってのが賢いのかも。今のところ保存されているデータも知れてますし。あと、$HOME/.kde/share/apps/amarok以下にデータベースも収まったことで、バックアップは簡単になりましたね(以前もSQLiteで管理していたらここにデータベースがあったので恩恵は薄い)。
しかし、てっきりAmarok2はMySQLのデータベースを1.4と同じように生成しないといけないと思ってたからそうWikiに書いちゃったよ・・・。この週末に修正しておこう^^;