2007/03/01 [木]
現在の sqlite3 の最新版は version 3.3.13 です。しかし、いろいろな制約でまだ新しい版にバージョンアップできない環境があるとします。例えば、ある環境では今だ version 3.0.0 しか使えないとします。そのような環境に、version 3.3.13 で作成したデータベースファイルを持ち込み、使用しようとすると、それが出来ないことがわかります。
実は、version 3.3.0 から、それまでの version 3.0.0 〜 3.2.8 までのデータベースとファイルフォーマットが変更されているのです。したがって、version 3.3.0 のような新しいファイルフォーマットで作成されたデータベースファイルは、旧式のデータベースファイルしか解釈できない version 3.0.0 では使えないのです。
しかし、それでは不便と言うことで、実は version 3.3.0 以降でも旧式のデータベースファイルを作成する方法があります。それは、データベースファイルが作成された直後にPRAGMA legacy_file_format = ON;
という SQL を発行するという方法です。これを実行することで、そのデータベースファイルは旧式のファイルフォーマットで作成されます。したがって、昔の version 3.0.0 などでもそのデータベースファイルを読み書きできるようになります。
by seclan