[mythtv] Backwards compatibility

Lawrence Rust lvr at softsystem.co.uk
Thu Jan 7 09:25:16 UTC 2016


On Thu, 2016-01-07 at 08:28 +1100, Jean-Yves Avenard wrote:
> Le mercredi 6 janvier 2016, Lawrence Rust <lvr at softsystem.co.uk> a écrit :
> 
> > Hi all,
> >
> > Over the holidays I've been thinking about how to increase the amount of
> > testing that the master branch gets.  One of the common stumbling blocks
> > to more universal acceptance is that many Myth users have a 'production'
> > backend running an older version, often 0.27, which is incompatible with
> > the latest Myth protocol and database schema.
> >
> >
> I simply compile the dev frontend to ignore the scheme version. Allows me
> to use a master frontend with a 0.27 "production" backend.
> 
> Been doing so for years...

That only works in a very limited number of cases where the schema
change is small.  There are a number of critical 'select' commands that
if failed due to schema changes prevent the FE from doing anything
useful.  Once the BE & FE are more than a few schema changes apart there
is little hope of successful interworking.  In fact with some schema
changes there is a distinct possibility of damaging the production
database.  That's why these patches enforce read-only mode when using an
old schema.

> The more correct way to do so IMHO would be to stop having front ends
> directly connect to the MySQL database and instead go via the backend. So
> that way we don't have to rely on a schema at all.
> 
> This been talked about for years, if you want to tackle this that would be
> awesome.

This was one of the topics I raised when PaulH asked me about becoming a
dev.  Having MySQL statements littered around the code base breaks
encapsulation and is a big overhead for low powered frontends.

The work on backwards compatibility is a precursor to this change as it
enables me to see the scale and spread of the problem.

-- 
Lawrence Rust



More information about the mythtv-dev mailing list