[mythtv] [mythtv-commits] mythtv commit: r17875 by nigel

Michael T. Dean mtdean at thirdcontact.com
Tue Jul 29 07:42:47 UTC 2008


On 07/29/2008 02:31 AM, Nigel Pearson wrote:

>  Mike, thanks for the extra eyes on my bad coding!

I wouldn't say bad coding.  You just didn't know what I was thinking 
when I wrote the DBMS version check. :)

> > The MINIMUM_DBMS_VERSION* is a runtime requirement, so we do need
> > to do the DBMS version check even if we're not upgrading the DB.
>
>  OK. We could add something like SchemaUpgradeWizard::CheckDMBSver(),
>  but its probably easier to check the version whenever a
>  SchemaUpgradeWizard is created?
>
>  Note that some programs (e.g. mythcommflag) don't actually try to
>  upgrade the schema, so it won't be foolproof, but I don't think
>  adding more checks into MythContext::Init() is helpful.

Warning:  3:30am thinking below.

Assumption #1: Each MythTV system has only one database and, therefore, 
one DBMS.
Assumption #2: Each MythTV system that runs a backend has a master backend.

Therefore, if the master backend checks the DBMS version and there's a 
running master backend, the DBMS version check has already succeeded, so 
a successful gContext->ConnectToMasterServer() makes the DBMS version 
check unnecessary.

Therefore, we could do the DBMS version check if 
gContext->IsMasterBackend() (but not for --printsched or --testsched or 
--resched or --upnprebuild or --printexpire or --clearcache or 
--generate-preview ).

Then, any additional backends or frontends or other clients can first 
attempt to verify the version check is completed by successfully 
contacting the MBE.  If a client is allowed to run without a backend and 
is unable to contact the MBE (i.e. for a frontend in use for plugins 
only), the client could do the DBMS version check itself.

It's way too late for me to figure out where to fit this in, or even 
whether it would make things easier (or much harder), but I'll give it 
some more thought tomorrow.

Mike



More information about the mythtv-dev mailing list