This is an old revision of the document!


SQLite Version 3.xx

Note: The information presented on this page does not apply to POPFile users on the Windows platform who installed POPFile using the installer package. The installer sees to it that the version of SQLite included with POPFile is compatible with POPFile and installs the needed libraries in such a manner that they will not impact any other software on your system.

Quick Summary

DBD::SQLite 0.31 and before needs to be installed without modification (unless you tried a v1.X and have a Sqlite3 db which must be converted back).

DBD::SQLite 0.32 - 0.33 needs to be installed with modification: Change Bayes_dbconnect from: dbi:SQLite:dbname=$dbname… to: dbi:SQLite2:dbname=$dbname…in the config file). (also if you tried a v1.X and have a Sqlite3 db which must be converted).

DBD::SQLite 1.x Does not work without modification of popfile (yet). It can coexist with popfile (if needed for another application) by changing popfile to DBD::SQLite2 0.33 (see above)…and allowing the other application to run with a sqlite 1.x driver.

Background

During July 2004 SQLite Version 3 was released. This version has significant changes from SQLite Version 2 including changes to the database file format, which breaks compatibility between the two versions.

  • SQLite 3 databases are not compatible with SQLite 2 databases. SQLite 2 databases must be converted to the SQLite 3 format.
  • The command line tool for SQLite 3 has been named sqlite3 to avoid confusion. The SQLite 2 command line tool retains the name sqlite.
  • Internally, the calls and libraries for SQLite 3 all include a 3 at the end, again to avoid confusion.

A new version of the Perl interface module to SQLite, DBD::SQLite was also released during July. Unfortunately, the release has caused some confusion due to the naming and numbering schemes that were used.

  • CPAN - Several updated versions were released to CPAN;
    • DBD::SQLite2 0.32 - 0.33 - This version is compatible with SQLite 2 (and with the current POPFile release).
    • DBD::SQLite 1.00 - 1.06 - These versions are compatible with SQLite 3, but are not currently compatible with POPFile due to unresolved issues and bugs.
  • PPM - A release was made to the Activestate Repository that added to the confusion. At this point, there is no module presently available via PPM that is compatible with SQLite 3.
    • DBD::SQLite 1.00 - This version is not the same as the CPAN version with the same version number. This version is compatible with SQLite 2, not SQLite 3. This version has not been fully tested with POPFile, but it is expected to work with the current release.

To check on the version of DBD::SQLite installed on your machine, use the following Perl one-liner.

   perl -MDBD::SQLite -e 'print $DBD::SQLite::VERSION'

Implications

With the break in database file compatibility and version confusion, we expect that users of SQLite will start seeing issues, particularly those who have installed Perl packages that use SQLite.

  • When you upgrade any existing DBD::SQLite module from CPAN, it will upgrade to SQLite version 3 , which will then require you to convert all SQLite 2 databases on your machine to version 3.
  • POPFile is not currently compatible with SQLite version 3 due to issues with DBD::SQLite 1.00 - 1.06. It is anticipated that those issues will be resolved for a later release of POPFile.
  • In order to have both SQLite version 2 and SQLite version 3 databases in a Perl environment, you will have to install DBD::SQLite2 to handle version 2 databases, and DBD::SQLite 1.xx for version 3.

Recommendation

Until the POPFile developers resolve the incompatibility issues with SQLite3, we do not recommend any POPFile users use SQLite 3 for POPFile.

If you must upgrade your Perl SQLite to version 3 due to other applications on your machine, we recommend you install DBD::SQLite2 and make the following change to your database connection string on the advanced page of the UI (or in popfile.cfg).

Change bayes_dbconnect from:

   dbi:SQLite:dbname=$dbname

to:

   dbi:SQLite2:dbname=$dbname

Note that POPFile must be shutdown and restarted for the change to go into effect.

The Future

Once the dust settles and the POPFile developers have had the opportunity to fully test SQLite 3 with POPFile, we will make an orderly transition to the newer version and take care of converting your POPFile database at that time.

 
sqlite3.1202496561.txt.gz · Last modified: 2008/08/01 06:37 (external edit)

Should you find anything in the documentation that is incomplete, unclear, outdated or just plain wrong, please let us know and leave a note in the Documentation Forum.

Recent changes RSS feed Donate Driven by DokuWiki
The content of this wiki is protected by the GNU Fee Documentation License