"Michael P. Soulier" <[EMAIL PROTECTED]> wrote:
> Hello,
> 
> I just got a nasty surprise. I installed an sqlite 3.3.5 .dll on windows with
> pysqlite2, and I used an application to create a database file. I then scp'd
> the file home to my linux box where I have sqlite 3.2.2 installed, and I got
> this:
> 
> sqlite> .tables
> Error: unsupported file format
> 
> Ouch. I'm building 3.3.5 now but it puts a kink in some of my cross platform
> development plans. 
> 
> How often is backwards compatibility to be broken in this way? 
> 

3.3.5 is backwards compatible.  It will read and write a 3.2.2
database file.  But 3.2.2 is not forwards compatible to 3.3.5.

SQLite 3 will always be backwards compatible.  Forwards compatibility
is a goal but is not guaranteed.

If you compile 3.3.5 with -DSQLITE_DEFAULT_FILE_FORMAT=1 then it
will by default generate a database that 3.2.2 can read.  You can
do this at runtime using

   PRAGMA legacy_file_format=ON;

Do the pragma when creating the database before the first CREATE TABLE.

--
D. Richard Hipp   <[EMAIL PROTECTED]>

Reply via email to