I had an issue upgrading from 4.0.10 to 4.2.2 also, all old recordings were listed as failed with cause time missed.
This is because the recording database format has changed in 4.2, filenames need to be listed in a files-section in the dvr log files.
I prepared a small python script based on the [https://github.com/tvheadend/tvheadend/blob/master/support/conf_migrate.py]] script that corrects this.
FIRST OF ALL : MAKE A BACKUP OF THE RECORDING DATABASE (backup all files in dvr/log/*)
Steps is used
1.Stop tvheadend service
root@tvhdvr:~# /etc/init.d/tvheadend stop
2.switch to tvheadend user (for me hts)
root@tvhdvr:~# su - hts
3.Backup files (twice to be sure..)
hts@tvhdvr:~$ mkdir -p /tmp/dvr/log
hts@tvhdvr:~$ mkdir -p /tmp/dvr_backup/log
hts@tvhdvr:~$ cp .hts/tvheadend/dvr/log/* /tmp/dvr/log
hts@tvhdvr:~$ cp .hts/tvheadend/dvr_backup/log/* /tmp/dvr/log
4. Migrate files (script will look for directory <path>/dvr/log, here <path> is /tmp)
hts@tvhdvr:~$ ./dvr_migrate.py /tmp
5.Copy files to proper place
hts@tvhdvr:~$ cp /tmp/dvr/log/* ~/.hts/tvheadend/dvr/log/
6.restart tvheadend service
hts@tvhdvr:~$ /etc/init.d/tvheadend start
After this all old recordings are again available.
Big thanks to the maintainers of this awsome software!