foltia で特定局の録画設定を全削除

関東から関西に引越しました。引越しに伴って録画できない回が生じるのはつらいですね。

新居にてチャンネルスキャン→録画予約の再設定を大急ぎで行ったわけですが過去の録画設定も残っており、そのままだとチューナー不足に陥ってしまいます。ちまちまと削除してたのですが、今期分でもそこそこ量があるのと、以前の分も再放送の可能性があるのでどうせなら視聴不可となった局の設定を一括で削除したい。

最初 /setup/listreserve.php を書き換えて、どうにかしようかとも思いましたが、面倒になったので設定・管理>データベース直接編集で直接 SQL を叩いて削除しました。
foltia のバージョンは4.0.12です。バージョンによりデータベース構造が異なる場合があるそうです。


直接 SQL を叩いてデータの削除を行うわけですので、最初にデータベースのデータをバックアップしておきます。といっても設定・管理>再起動/電源オフを行う際に、 /home/foltia/php/tv/mita/foltia-DB-Dump.dat.MP4 という名前で自動的にバックアップファイルが作成されますので、いったん再起動し、このファイルを別の場所(名前)にコピーしておきます。


さて、phpPgAdmin 上でログインしデータベース foltia を選択します。すると右上の方にでてくる SQL というリンクがでてきます。この SQL をクリックすると SQL 文を実行可能なウィンドウが別途表示されます。なお、実行した SQL 文の結果は、元ウィンドウに表示されます。


削除を行う前に、現在の録画設定の一覧を表示してみます。

SELECT s.stationid, s.stationname, p.tid, p.title
FROM (foltia_tvrecord AS r JOIN foltia_program AS p ON r.tid = p.tid)
    JOIN foltia_station AS s ON r.stationid = s.stationid
ORDER BY s.stationid ASC, r.tid DESC


今回 NHK は削除する必要はないので、最初の削除対象局は stationid = 3 のフジテレビとすることにします。


削除を行う際のテレビ局の stationid ですが、単にこの ID さえわかればいいというのであれば、下記の方法でも確認できます。

SELECT DISTINCT s.stationid, s.stationname
FROM foltia_tvrecord AS r JOIN foltia_station AS s ON r.stationid = s.stationid
ORDER BY s.stationid ASC


いよいよお待ちかねの一括削除の時間です。 WHERE stationid = 3 をつけて対象をフジテレビのみとしています。

DELETE FROM foltia_tvrecord WHERE stationid = 3


WHERE 節を忘れると全削除になってしまうので、そうなったときはバックアップファイルからリストアするか、過去は振り返らず、 NHK も新規局もガンガン録画予約していきます。どうせ、新規局分の予約設定は行う必要があるのですから。(あ、でも EPG 録画とかも消えちゃうけど、それはよくないかも)


一件、削除作業が終わりました。再び録画設定一覧を見てみると、フジテレビの番組は消え、次に日本テレビが表示されました。


ということで、無事作業終了。最初 phpPgAdminSQL 文の実行ってどこから行えばいいのか知らなかったんですよー。