How to deal with bogus entry in DB?
Steve Gordon
sgordon at redhat.com
Mon Feb 6 15:14:08 UTC 2012
----- Original Message -----
> From: "Steve Gordon" <sgordon at redhat.com>
> To: "For participants of the Documentation Project" <docs at lists.fedoraproject.org>
> Sent: Monday, February 6, 2012 10:10:41 AM
> Subject: Re: How to deal with bogus entry in DB?
>
>
>
> ----- Original Message -----
> > From: "alick" <alick9188 at gmail.com>
> > To: "For participants of the Documentation Project"
> > <docs at lists.fedoraproject.org>
> > Sent: Saturday, February 4, 2012 9:40:34 AM
> > Subject: How to deal with bogus entry in DB?
> >
> > Hi docs folks,
> >
> > I think I have got a tough jouney to publish zh-CN translation of
> > install guide.
> >
> > In the install-guide working directory, I want to install the book
> > and
> > get these error messages:
> >
> > (f16>)$ publican install_book --site_config ../web/homepage.cfg
> > --lang
> > zh-CN
> >
> > DEBUG: Publican: config loaded
> > ERROR: bogus entry found in DB:
> > zh-TW/Fedora/12/pdf/Installation_Quick_Start_Guide
> > ERROR: bogus entry found in DB:
> > zh-TW/Fedora/12/pdf/Virtualization_Guide
> >
> > Then I cd to my local copy of website dir, look into the directory
> > `publish_html/zh-TW/Fedora/12/`. No pdf subdirectory there indeed,
> > let
> > alone the two guide mentioned in the error messages.
> >
> > I think the fedoradocs.db might need manual fix, so I create a
> > 'fix-db'
> > branch, and manually delete bogus entries in the db:
> >
> > (fix-db)$ sqlite3 fedoradocs.db
> > SQLite version 3.7.7.1 2011-06-28 17:39:05
> > Enter ".help" for instructions
> > Enter SQL statements terminated with a ";"
> > sqlite> select * from books where language = 'zh-TW' and version
> > =
> > 12
> > and format = 'pdf' ;
> > sqlite> delete from books where language = 'zh-TW' and version =
> > 12
> > and format = 'pdf' ;
> > sqlite> .exit
> >
> > After that, a rerun of publican install_book seems fine.
> >
> > So am I right of the manual operation? I have skimmed the list
> > archives
> > and find the similar error reported and later fixed. But I don't
> > know
> > how it was fixed.
>
> In my experience when you start getting the 'bogus entry' messages
> from publican the only way around it is as you say, to check that
> the entries in question definitely don't exist on the filesystem and
> then manually remove them from the database.
>
> Steve
Oh, I should say though - normally you should still be able to use publican to do the delete rather than opening up sqlite itself:
publican update_db --del --lang="zh-TW" --version="12" --formats="pdf"
Normally I would recommend being more specific using the --name and/or --product arguments, but the above is equivalent to what you did in sqlite.
sTEVE
More information about the docs
mailing list