[Zope] Packing date screwed up
Dieter Maurer
dieter@handshake.de
Sat, 28 Dec 2002 20:21:30 +0100
Cliff Quinn wrote at 2002-12-27 15:34 -0800:
> I can't pack my database because at some point, with the machine time
> set at 2008 (don't ask) it was packed. How can I force this, or change the
> database date. I tried using the fsrecover, which tells me the dates are out
> of sequence, but doesn't do anything about it. I found a similar problem in
> the list archives, but no answer to it.
>
> >Error Type: FileStorageError
> >Error Value: The database has already been packed to a later time or no
> changes have been made since the last pack
>
> (Zope 2.6.0 (binary release, python 2.1, win32-x86), python 2.1.3, win32)
> running on WIN98 (please don't laugh).
Your problem is probably bigger than you expect:
You probably also have transactions in the future.
When you can, I would see whether the latest backup can be used written
when the time was still normal.
When this is not possible, I would use "tranalyzer" (maybe slightly
differently spelled) to analyse the "Data.fs" and see how much
staff comes with an wicked date and how much I would lose when I would
cut the file to a safe limit.
After that, I would search (using Zope's "Find" with a copy of the
old "Data.fs") for the objects changed in the future and
more the changes back (when they were not too many).
If all were unfeasible, I would look at the source of
"ZODB.fsrecover". It copies a "Data.fs" and repairs corrupt pieces.
Certainly, it could be modified to salvage strange transaction times.
Dieter