[mythtv] Bootstrapping DB settings

Matt Zimmerman mythtv-dev@snowman.net
Wed, 4 Dec 2002 11:10:17 -0500

On Wed, Dec 04, 2002 at 07:05:32AM -0800, Bruce Markey wrote:

> 1) There is a mismatch for codecparams in the 0-7-to-0-8.sql
> file. "type" is included in the primary key but is not
> defined. At first I tried adding it as a not null varchar
> but then I never saw it being set so maybe it doesn't belong
> in the key...

Cut and paste error.  Fixed in CVS now.

> 2) Entering the recording settings with empty codecparams
> and recordingprofiles tables causes some weird behavior the
> first couple times through. It seems as if the first time
> a profile is committed, the 13 name/value pairs in
> codecparams have "0" in the profile column while there
> are two rows created in recordingprofiles with id values
> of 1 and 2 with missing data in each row.

> Editing and committing "Custom" a second time adds 13
> new rows in codecparams with a profile value of 1 and
> the "Custom" row then has all fields filled in correctly.

Try dropping the recordingprofiles table and recreating it using the new
0-7-to-0-8.sql script.  I think this was happening because the row is
filled in one column at a time, but some of the columns were set to be NOT
NULL.  Let me know if this fixes the problem; I can't test it right now.

> 3) Even though the "Finish" button goes back to the list
> of profiles (suggesting you could begin adding another)
> the edited profile doesn't appear to get committed until
> exiting back to the setup menu. Is this the intended
> behavior?

No, this is just the roughness of the implementation.  I mean to fix it so
that it commits the changes immediately.  It just wasn't obvious to me what
the best way was to do it in Qt fashion.  I wanted to get this stuff into
CVS before it diverged any further, to avoid interfering with other work
that is being done right now.

> 4) It looks as if the codecparams table is used as a group
> of name/value pairs but the data seems like it should be
> in rows. Did you consider using the names as columns then
> putting the values in rows for each profile number?

Different codecs have different parameters.  Doing it in rows would require
modifying the database every time a new setting or codec was added, and
either having a different table for each codec, or having each row be a
superset of all possible settings for every codec.  I think the current
design is preferable.

> Of these, fixing the sql upgrade file is the only thing
> that needs attention before starting to use builds from
> cvs.

Should be done.

 - mdz