I found out what I needed to do to get our data free from the database
corruption. I ran an dump on the database, then simply reimported into
a new database file. The bad data was affected, however I was able to
get the 99.999% good data out.Now the database doesn't complain about
a malformed disk image. Instructions are here:

http://techblog.dorogin.com/2011/05/sqliteexception-database-disk-image-is.html

Then simply make sure to remove the rollback command at the end of the
script file, as well as make sure to run the commit command before
exiting the sqlite command line. If you miss these two, you end up
with an empty database and a zero byte file.

On Jan 9, 4:14 pm, Daniel <doub...@mcdewey.com> wrote:
> I went into the database via sqlite and ran a PRAGMA Integrity_Check:
>
> sqlite> PRAGMA integrity_check;
> *** in database main ***
> On tree page 244136 cell 0: invalid page number 218103808
> On tree page 241765 cell 63: 2nd reference to page 244130
> On tree page 241765 cell 63: Child page depth differs
> On tree page 241765 cell 64: Child page depth differs
> Page 244129 is never used
> Page 244131 is never used
> Page 244132 is never used
> Page 244133 is never used
> Page 244134 is never used
> Page 244135 is never used
> Page 398364 is never used
> Page 398365 is never used
>
> I've looked around and can't find a way to get these cleared. Does
> anybody know of a way? We really need this to get fixed so we can make
> the migration out of SQLite with data intact.
>
> Thanks,Daniel
>
> On Dec 17 2011, 10:16 am,Daniel<doub...@mcdewey.com> wrote:
>
>
>
>
>
>
>
> > I'm in the midst of trying to move from SQLite to MySQL. I know that
> > we shouldn't be running SQLite on a production server, that's the
> > reason for the migration. However whenever I try to dump the data from
> > the database using:
> > rb-site manage . dumpdata > sqlite.json
> > I get the following error:
>
> > Traceback (most recent call last):
> >   File "/usr/local/bin/rb-site", line 8, in <module>
> >     load_entry_point('ReviewBoard==1.5.4', 'console_scripts', 'rb-
> > site')()
> >   File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-
> > py2.6.egg/reviewboard/cmdline/rbsite.py", line 1611, in main
> >     command.run()
> >   File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-
> > py2.6.egg/reviewboard/cmdline/rbsite.py", line 1545, in run
> >     site.run_manage_command(args[0], args[1:])
> >   File "/usr/local/lib/python2.6/dist-packages/ReviewBoard-1.5.4-
> > py2.6.egg/reviewboard/cmdline/rbsite.py", line 397, in
> > run_manage_command
> >     execute_manager(reviewboard.settings, [__file__, cmd] + params)
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/core/management/__init__.py", line 438, in execute_manager
> >     utility.execute()
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/core/management/__init__.py", line 379, in execute
> >     self.fetch_command(subcommand).run_from_argv(self.argv)
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/core/management/base.py", line 191, in run_from_argv
> >     self.execute(*args, **options.__dict__)
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/core/management/base.py", line 220, in execute
> >     output = self.handle(*args, **options)
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/core/management/commands/dumpdata.py", line 84, in handle
> >     objects.extend(model._default_manager.using(using).all())
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/db/models/query.py", line 82, in __len__
> >     self._result_cache.extend(list(self._iter))
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/db/models/query.py", line 271, in iterator
> >     for row in compiler.results_iter():
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/db/models/sql/compiler.py", line 677, in results_iter
> >     for rows in self.execute_sql(MULTI):
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/db/models/sql/compiler.py", line 752, in execute_sql
> >     return list(result)
> >   File "/usr/local/lib/python2.6/dist-packages/Django-1.2.5-py2.6.egg/
> > django/db/models/sql/compiler.py", line 746, in <lambda>
> >     result = iter((lambda: cursor.fetchmany(GET_ITERATOR_CHUNK_SIZE)),
> > sqlite3.DatabaseError: databasediskimageismalformed
>
> > I need some help getting this resolved. This data cannot be lost. Our
> > actual RB site appears to do just fine, except that we get database
> > locked errors because of high traffic. Another reason we are trying to
> > migrate to MySQL. Any help would be greatly appreciated.
>
> > Thanks,
> >Daniel

-- 
Want to help the Review Board project? Donate today at 
http://www.reviewboard.org/donate/
Happy user? Let us know at http://www.reviewboard.org/users/
-~----------~----~----~----~------~----~------~--~---
To unsubscribe from this group, send email to 
reviewboard+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/reviewboard?hl=en

Reply via email to