Some days ago I've stopped weewx for roughly one day (I did change the GPIO connections of my raspberry pi4). Now I wanted to insert some data into my weewx.sdb from that timespan.
When trying some sqlite3 commands (on a local copy of weewx.sdb - as an exercise a simple count) sqlite3 failed with corrupt database. OK, can imagine that that might have happened sometimes during the last 5 years. Thus I tried to rebuild my database by
mv weewx.sdb weewx_corrupt.sdb
sqlite3 weewx_corrupt.sdb .recover > weewx.sql
sqlite3 weewx.sdb < weewx.sql
Now my sqlite3 commands worked as expected, i.e. the newly created weewx.sdb seemed to be fixed. Keep in mind that I did not modify weewx.sql. Thus a potential error might still have "survived" within the newly created weewx.sdb.
I then checked the modified weewx.sdb copied into /var/lib/weewx (weewx itself was NOT running) with
weectl database check
and got no error messages. But weewxd did not like that modified weewx.sdb. It reports "OverflowError: timestamp out of range for ..." when starting weewx.
To me it's difficult to tell
1. whether my original weewx.sdb is corrupt at all (weewxd works fine)
2. if it's corrupt howto fix it.
Hope somebody might have a suggestion, Michael