[mythtv] Use callsign for scheduling
Brian May
bam at snoopy.apana.org.au
Tue Apr 20 19:15:01 EDT 2004
>>>>> "David" == David Engel <gigem at comcast.net> writes:
David> OK, then quit complaining and make a concrete proposal (or
David> better yet, a patch) to do this. Please make sure it
David> handles upgrading and backwards and forwards compatibility.
Like I proposed earlier (although I may not have time to do it),
create a new "station" table. To do this and maintain compatibility,
how about the following?
When upgrading database:
1. Create new table, call it station. This table has "stationid",
"callsign", and "xmltvid" fields.
2. Automatically file the "station" table based on the existing
"channel" table. Automatically allocate stationid's for each
station.
station=(prev+1), callsign=channel.callsign, xmltvid=channel.xmltvid
for every unique callsign
3. Add "stationid" to "channel" table, and set it to the stationid
used in 2. Do not delete "callsign" or "xmltvid" yet, they are for
backwords compatibility.
When making changes using mythtv-setup:
<insert text="clever stuff here">
In particular, when updating callsign or xmltvid for a channel, update
both channel table and station table.
Alternatively, just have a new section for updating "stations"
independently of the "channels" and skip the next section on cross
checking information.
</insert>
For the paranoid, and if appropriate, whenever starting up:
1. Check the "channel" table.
* In particular, ensure that the "callsign" value corresponds with
the "stationid", as per the "station" table. If it doesn't, then
the user may have updated the callsign in an older version, or
manually updated the database.
ie. check:
station.callsign==channel.callsign
WHERE channel.stationid == station.stationid
* Similarly, check that the "xmltvid" value matches the "xmltvid"
value in the "station" table.
ie. check:
station.xmltvid==channel.xmltvid
WHERE channel.stationid == station.stationid
It probably wouldn't hurt if these checks are not done, but it could
be confusing (if you aren't expecting the callsign could be different
depending on what version of mythtv you use). It is unclear what to do
if any of the above checks fail, probably the best thing would be just
to log a warning. If you try to automagically correct errors, you
might update the wrong thing.
When ability to run older versions of mythtv no longer required:
1. delete the "callsign" and "xmltvid" fields in "channel", and remove
above checks.
(Disclaimer: my examples may look like SQL extracts, but probably
aren't)
--
Brian May <bam at snoopy.apana.org.au>
More information about the mythtv-dev
mailing list