EPGStation のバージョンアップではまったメモ

EPGStation のアップデートを公式ドキュメント通りに実施したところ、なぜか起動しなくなった。 Github の issue をのぞいてみたけど現象は報告されていなかったので、自分だけかもしれない。 とりあえず自力でなんとかしてみたのでそのときのログを残しておく。

公式サイトの手順通りにアップデートを実施

git pull
npm update
npm update -D
npm run build

EPGStation を再起動

pm2 restart epgstation

なぜかアクセスできなくなったので困った困った。 とりあえずログを探してみる

less logs/Operator/system.log

それっぽいエラーはいてるけど何が何だかさっぱり。

[2019-07-07T16:00:55.276] [INFO] system - upgrade 8 => 9
[2019-07-07T16:00:55.324] [FATAL] system - upgrade error

もっと詳しいログはないのかなーと探してみたらあった。 pm2 show epgstation を実行するとこんな感じの記載があった

out log path      │ $HOME/.pm2/logs/epgstation-out.log

とりあえずのぞいてみたらそれっぽいエラーが見つかる。

Error: ER_DUP_FIELDNAME: Duplicate column name 'channelId'

エラーはこのファイルMigrationV9.tsで起きているらしい。 中身を見るとDBのMigrationで RecordedHistory テーブルに channelId カラムを追加しているだけっぽい。

実際に該当のテーブルを見てみたら、すでに channelId カラムが存在している。。。 追加に失敗しているんだったら該当カラムを削除しちゃえば動くんじゃない?と安直な考えをしてみた。

まずは該当カラムにデータが入っているかを確認。 以下のクエリたたいてみたけど、NULL以外のデータが入っているものがなかった。

select * from RecordedHistory where channelId is not null;

ならバックアップとってから削除してしまえ。

epgstation 停止

pm2 stop epgstation

データベースをバックアップ

mysqldump --single-transaction -u user名 -p table名 > バックアップファイル名

カラム削除

alter table RecordedHistory drop channelId;

epgstation 起動

pm2 start epgstation

無事起動。 よかったね。