[mythtv] How do you delete the database except for recorded videos

Brent Borghese mythtv-dev@snowman.net
Fri Jan 3 01:58:03 EST 2003


> Will the script prompt me for the name of the video file and enter it
> into the database? Then the only thing missing is the description?
> Thanks

No.

But, you can save the output and edit the '???' in the output to have the 
show names.

I am planing to write another script to save the names, but all in time.

Brent

> On Wed, 2003-01-01 at 21:15, Brent Borghese wrote:
> > > Will this allow me to rebuild the recorded video  database from the
> > > video files stored on the hard disk if I decide to just delete the whole
> > > database and start over?
> >
> > Yes, it will help you do that.
> >
> > But, you will not have the name of the shows.   When you go to play, it
> > will have the channel, date, time and the name will be: ???
> >
> > It is possible to lookup the info, but with no database that would not
> > work.
> >
> > That is why I think there should be a XML file with each video file.
> > Then if you delete your database and have a script to put things back in
> > after a upgrade.
> >
> > Brent
> >
> >
> >
> > > On Wed, 2003-01-01 at 17:49, Brent Borghese wrote:
> > > > > I have multiple entries of the same show listed in Fix Recording
> > > > > conflicts( a show conflicting with itself).  Is there a way to delete
> > > > > this section of the database?  I want to keep the listing of the current
> > > > > videos recorded in the hard drive of course.  Thanks
> > > >
> > > > Here is a shell script that will check the database and your video store
> > > > to make sure they are in sync.
> > > >
> > > > It has only been tested on the current CVS!
> > > >
> > > > What the script does so far:
> > > > - Makes sure all DB entries have a video file on disk
> > > > - Makes sure all video files have DB entries
> > > > - If there are missing DB entries or missing files, it will display the
> > > >   mysql command that will fix it.
> > > >
> > > > You will need to run it as root or what ever user has access to the myth
> > > > database.
> > > >
> > > > For now it does not check for duplicate DB entries.
> > > >
> > > > Brent
> > > >
> > > > ----
> > > >
> >
> > > > #!/bin/bash
> > > > store=$(mysql -D mythconverg --batch -s -e "select * from settings
> > ;"|grep RecordFilePrefix|awk '{ print $2 }')
> > > > mysql -D mythconverg --batch -s -e "select * from recorded ;"|awk '{
> > print $1 "_" $2 "_" $3 ".nuv" }'|sort>/tmp/flist.txt
> > > > cd $store
> > > > find . -name "*.nuv"|awk -F/ '{print $2}'|sort|grep -v ringbuf
> > >/tmp/flist2.txt
> > > > diff /tmp/flist.txt /tmp/flist2.txt|egrep "[<>]">/tmp/flist3.txt
> > > > cat /tmp/flist3.txt|sed -e 's/</No File found for DB entery:/'|sed -e
> > 's/>/No DB entery for file:/'>/tmp/flist4.txt
> > > >
> > > > # Get the number of video files in the store
> > > > fileCount=$(cat /tmp/flist2.txt|wc -l)
> > > >
> > > > # Get the number of video files in the DB
> > > > fileDBCount=$(cat /tmp/flist.txt|wc -l)
> > > > echo Total number of files found     : $fileCount
> > > > echo Total number of DB entries found: $fileDBCount
> > > > echo Checking to make sure things match.
> > > > if [ $(cat /tmp/flist4.txt|wc -l) != "0" ] ; then
> > > >    echo "Here is a list of problems found"
> > > >    cat /tmp/flist4.txt
> > > > fi
> > > > # get the number of missing DB entries
> > > > touch /tmp/NoDB.txt
> > > > for line in $(cat /tmp/flist3.txt|grep ">"|awk '{ print $2 }') ;
> > > >    do echo $line >/tmp/line.txt ;
> > > >       cat /tmp/line.txt |awk -v qq="'" -F "[_.]" '{ print "mysql -D
> > mythconverg --batch -s -e \"insert into recorded values (" qq $1 qq "," 
qq $2
> > qq "," qq $3 qq "," qq "???" qq "," qq "???" qq "," qq "???" qq ") ;\""
> > }'>/tmp/NoDB.txt
> > > > done
> > > > NoDBCount=$(cat /tmp/NoDB.txt|wc -l)
> > > > if [ $NoDBCount != "0" ]; then
> > > >    echo
> > > >    echo "Commands to fix: No DB entery"
> > > >    echo "----------------------------"
> > > >    cat /tmp/NoDB.txt
> > > >    echo Or to free up disk space you can do:
> > > >    for line in $(cat /tmp/flist3.txt|grep ">"|awk '{ print $2 }') ;
> > > >       do echo $line >/tmp/line.txt ;
> > > >         cat /tmp/line.txt |awk -v store=$store -F "[_.]" '{ print "rm -f
> > " store "/" $1 "_" $2 "_" $3 ".nuv" }'
> > > >    done
> > > > else
> > > >    echo All Files have DB entries
> > > > fi
> > > >
> > > > # Get the number of missing files
> > > > touch /tmp/NoFile.txt
> > > > for line in $(cat /tmp/flist3.txt|grep "<"|awk '{ print $2 }') ;
> > > >    do echo $line >/tmp/line.txt ;
> > > >       cat /tmp/line.txt |awk -F "[_.]" '{ print "mysql -D mythconverg
> > --batch -s -e \"delete from recorded where chanid=" $1 " and starttime=" 
$2 "
> > and endtime=" $3 " ;\""  }'>/tmp/NoFile.txt
> > > > done
> > > > NoFileCount=$(cat /tmp/NoFile.txt|wc -l)
> > > > if [ $NoFileCount != "0" ]; then
> > > >    echo
> > > >    echo "Commands to fix: No File found for DB entery"
> > > >    echo "--------------------------------------------"
> > > >    cat /tmp/NoFile.txt
> > > > else
> > > >    echo All DB entries have a file in the store.
> > > > fi
> > > >
> > > > rm -f /tmp/flist.txt /tmp/flist2.txt /tmp/flist3.txt /tmp/flist4.txt
> > /tmp/NoDB.txt /tmp/NoFile.txt
> > > >
> > > >
> >
> >
> > > _______________________________________________
> > > mythtv-dev mailing list
> > > mythtv-dev@snowman.net
> > > http://www.snowman.net/mailman/listinfo/mythtv-dev
> >
> > _______________________________________________
> > mythtv-dev mailing list
> > mythtv-dev@snowman.net
> > http://www.snowman.net/mailman/listinfo/mythtv-dev


> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev@snowman.net
> http://www.snowman.net/mailman/listinfo/mythtv-dev




More information about the mythtv-dev mailing list