[mythtv-users] old mythvideo.DBSchemaVer

Michael T. Dean mtdean at thirdcontact.com
Mon Jul 30 15:09:55 UTC 2012


On 07/27/2012 04:48 PM, Ross Boylan wrote:
> If anyone can confirm my diagnosis or offer suggestions for a way
> forward, I'd appreciate it.
>
> Also, would this be better directed to the developer list?
>
> Short version: The automatic upgrade of my database from 0.24.2 to
> 0.25.0 fails.  The problem seems to be that my mythvideo.DBSchemaVer is
> 1011, while the minimum acceptable for upgrade is 1016.  Probably not
> coincidentally I do not have the mythvideo package from Marillat's
> repository installed (along with several others--I just got what I
> needed for TV).  0.24.2 was the first version ever installed on the
> machine, and so the version number could not be a hold-over from an
> older install.
>
>
> Thanks.
> Ross
>
>
> Details of the diagnosis:
>
> Since the log shows I'm at DBSchemaVer 1266 I looked at the code in
> dbcheck.cpp
> (http://code.mythtv.org/doxygen/mythtv_2libs_2libmythtv_2dbcheck_8cpp_source.html).  It appears this code successively upgrade the database for each version.  The fact that I'm at 1266 indicates the upgrade code from 1266 to 1267 failed; I believe that's lines 1244-1255 (that's on the web; I'm actually using slightly older source code).  This calls doUpgradeVideoDatabaseSchema, which in turn does these checks:
>
> 00348 bool doUpgradeVideoDatabaseSchema(void)
> 00349 {
> 00350     QString dbver = gCoreContext->GetSetting("mythvideo.DBSchemaVer");
> 00351     if (dbver == finalVideoDatabaseVersion)
> 00352     {
> 00353         return true;
> 00354     }
> 00355
> 00356     QString olddbver = gCoreContext->GetSetting("VideoDBSchemaVer");
> 00357     QString dvddbver = gCoreContext->GetSetting("DVDDBSchemaVer");
> 00358     if (dbver.isEmpty()&&  olddbver.isEmpty()&&  dvddbver.isEmpty())
> 00359     {
> 00360         if (!InitializeVideoSchema())
> 00361             return false;
> 00362         dbver = gCoreContext->GetSetting("mythvideo.DBSchemaVer");
> 00363     }
> 00364
> 00365     if (dbver.isEmpty() || dbver.toInt()<   minimumVideoDatabaseVersion.toInt())
> 00366     {
> 00367         LOG(VB_GENERAL, LOG_ERR,
> 00368             "Unrecognized video database schema version. "
> 00369             "Unable to upgrade database.");
> 00370         LOG(VB_GENERAL, LOG_ERR, QString("mythvideo.DBSchemaVer: '%1', "
> 00371             "VideoDBSchemaVer: '%2', DVDDBSchemaVer: '%3'").arg(dbver)
> 00372                 .arg(olddbver).arg(dvddbver));
> 00373         return false;
> 00374     }
> and my log shows
> CoreContext videodbcheck.cpp:375 (doUpgradeVideoDatabaseSchema) - mythvideo.DBSchemaVer: '1011', VideoDBSchemaVer: '', DVDDBSchemaVer: ''.
>
> Manual inspection of the tables confirms the version of
> mythvideo.DBSchemaVer and the absence of the other keys in the settings
> table.  Unfortunately minimalVideoDatabaseVersion is 1016.
>
> BTW, my logs indicate 0.24.2 was on MythTV Schema 1264.  Note this is a
> distinct sequence from mythvideo.DBSchemaVer.

Can you please provide the logs showing the failed DB upgrade.  If you 
never installed MythVideo from MythTV version 0.13 or whatever the 
oldest supported version was (somewhere around 0.13), then the "old 
MythVideo schema version" isn't the problem.

Mike


More information about the mythtv-users mailing list