title: SQLite3 database or disk is full / the database disk image is malformed
body: <p>My database is about 25 MB, and I've verified that the username accessing it, as well as the file permissions haven't changed in months. I'm having a problem where queries are failing due to a "database or disk is full" and then sometimes "database disk image is malformed" issue.</p>
  
  <p>Unless I'm reading this wrong, my disk isn't anywhere near full (this is an Ubuntu server, 9.10, if it makes any difference)</p>
  
  <pre><code>Filesystem           1K-blocks      Used Available Use% Mounted on
  /dev/sda1             19610300   2389596  16224560  13% /
  udev                     10240       128     10112   2% /dev
  none                    254136         0    254136   0% /dev/shm
  none                    254136        36    254100   1% /var/run
  none                    254136         0    254136   0% /var/lock
  none                    254136         0    254136   0% /lib/init/rw
  </code></pre>
  
  <p>As a test I just did an action that added a new record, and it's fine. I'm trying to fiqure out if there's a specific set of actions that are failing. However, after the insert (and verifying that it's there) the number of bytes on disk for the database has not changed (neither up nor down).</p>
  
  <p>Using the command line utility results in something like the following, which is failing spectacularly :)</p>
  
  <pre><code>SQLite version 3.6.12
  Enter ".help" for instructions
  Enter SQL statements terminated with a ";"
  sqlite&gt; pragma integrity_check;
  *** in database main ***
  On tree page 2 cell 0: 2nd reference to page 26416
  On tree page 2 cell 1: 2nd reference to page 26417
  On tree page 2 cell 2: 2nd reference to page 26434
  On tree page 2 cell 3: 2nd reference to page 26449
  On tree page 2 cell 4: 2nd reference to page 26464
  On tree page 2 cell 5: 2nd reference to page 26358
  On tree page 2 cell 6: 2nd reference to page 26494
  On tree page 2 cell 7: Child page depth differs
  On tree page 2 cell 8: 2nd reference to page 26190
  On tree page 2 cell 8: Child page depth differs
  
  ... etc., etc. ...
  </code></pre>
  
  <p>Any ideas on where I should be looking next? Is there a problem with the maximum number of rows in a table or something? I did some reading on SQLite3 max values, and nothing in my database is anything close to them as far as I can tell.</p>
  
  <p>I then took a look at my daily backups, and I see that the database backup hasn't changed in file size for 3-4 days - very strange. I restored a backup copy of the database from before the time it was not changing in file size, and still getting strange issues.</p>
  
  <p>I'm thinking I'm going to have to (1) restore from an older backup, and (2) re-run my Rails migrations to fix.</p>