そもそも、七めんどくさいことやらなくてもsubsonic.data、subsonic.properties、subsonic.scriptをコピーすれば良いんでないの?という疑問がふと湧き上がった。でも、以前、それやったら上手く行かなかったんだよな・・・改めて差分確認。
subsonic.propertiesには、違いという違いはない。そもそも移行していくる意味が無い。
subsonic.scriptの方は、サーバー起動時に実行されるであろうDDL、DMLが入っている。hsqldbこういう仕組みなのか…テキストファイルでDB構造丸見えってのも、デンジャラス!気になる人はtomcatだけ権限を与えるようにchmod 600
にしておいたら、よりセーフティーなのかね・・・更にいうと
CREATE USER SA PASSWORD ""
GRANT DBA TO SA
SAユーザにDBA(DB管理者権限)与えている。ユーザー名とパスワード変えるなら、Javaファイルである、 net.sourceforge.subsonic.dao.scratch.javaの66、67行目
ds.setUsername("sa");
ds.setPassword("");
も一緒に変えれば、上手く動くのかな。とはいえ、前回やったようにsubsonic(組み込み)として起動していれば、他からは接続できないので、そこまでする必要もない気もする。
差分として出ているのはindex名。他、気になる差分はこれといってないな・・・というか、アップグレードしてから、数日間動かしているから、ちゃんとした差分が分からない。
気がついたが、プレイリスト。これって/var/playlist
配下のテキストファイルとして保存されていると思ったら、DBに格納されている。4.6バージョンから PLAYLISTというテーブルは存在していたようだけど、こちらには入ってないな・・・なんでだ。
ついでに、Javaの方も覗く。subsonic\subsonic-4.6-src\subsonic-main\src\main\java\net\sourceforge\subsonic\dao
配下だけ。
Schema46.javaのメソッドtranscoding2のinsert文がvalue句だけだったのが、column句がある。 AbstractDao.javaのメソッドquestionMarksでStringBufferがStringBuilderに変更している。つらつら、変更点書こうと思ったけど、結局のところ、DB操作における大きな変更点はないような・・・
ともかくやってみるか。以前できなかったのは、勘違いかもしれん。
user@ubuntu:/var/subsonic/db$ sudo cp -p /var/subsonic_bak/db/subsonic.data subsonic.data
user@ubuntu:/var/subsonic/db$ sudo cp -p /var/subsonic_bak/db/subsonic.script subsonic.script
user@ubuntu:/var/subsonic/db$ ls -l
total 133664
-rw-r--r-- 1 tomcat6 tomcat6 645125 Apr 1 00:18 subsonic.backup
-rw-r--r-- 1 root root 1048576 Mar 31 21:54 subsonic.data
-rw-r--r-- 1 tomcat6 tomcat6 134217728 Mar 31 21:55 subsonic.data_bak
-rw-r--r-- 1 tomcat6 tomcat6 418 Apr 1 00:18 subsonic.properties
-rw-r--r-- 1 root root 481027 Mar 31 21:54 subsonic.script
-rw-r--r-- 1 tomcat6 tomcat6 468121 Mar 31 21:55 subsonic.script_bak
user@ubuntu:/var/subsonic/db$ sudo chown tomcat6:tomcat6 subsonic.data
user@ubuntu:/var/subsonic/db$ sudo chown tomcat6:tomcat6 subsonic.script
なんか、作ったユーザーでログインできたけど、プレイリストとかその他もろもろが真っ白けっけで駄目。
やっぱり駄目なのね。