1
0
Fork 0
cl-sites/sqlite-doc-3440000/formatchng.html
2023-11-03 12:08:53 +01:00

166 lines
5.4 KiB
HTML

<!DOCTYPE html>
<html><head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="sqlite.css" rel="stylesheet">
<title>File Format Changes in SQLite</title>
<!-- path= -->
</head>
<body>
<div class=nosearch>
<a href="index.html">
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite" border="0">
</a>
<div><!-- IE hack to prevent disappearing logo --></div>
<div class="tagline desktoponly">
Small. Fast. Reliable.<br>Choose any three.
</div>
<div class="menu mainmenu">
<ul>
<li><a href="index.html">Home</a>
<li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
<li class='wideonly'><a href='about.html'>About</a>
<li class='desktoponly'><a href="docs.html">Documentation</a>
<li class='desktoponly'><a href="download.html">Download</a>
<li class='wideonly'><a href='copyright.html'>License</a>
<li class='desktoponly'><a href="support.html">Support</a>
<li class='desktoponly'><a href="prosupport.html">Purchase</a>
<li class='search' id='search_menubutton'>
<a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
</ul>
</div>
<div class="menu submenu" id="submenu">
<ul>
<li><a href='about.html'>About</a>
<li><a href='docs.html'>Documentation</a>
<li><a href='download.html'>Download</a>
<li><a href='support.html'>Support</a>
<li><a href='prosupport.html'>Purchase</a>
</ul>
</div>
<div class="searchmenu" id="searchmenu">
<form method="GET" action="search">
<select name="s" id="searchtype">
<option value="d">Search Documentation</option>
<option value="c">Search Changelog</option>
</select>
<input type="text" name="q" id="searchbox" value="">
<input type="submit" value="Go">
</form>
</div>
</div>
<script>
function toggle_div(nm) {
var w = document.getElementById(nm);
if( w.style.display=="block" ){
w.style.display = "none";
}else{
w.style.display = "block";
}
}
function toggle_search() {
var w = document.getElementById("searchmenu");
if( w.style.display=="block" ){
w.style.display = "none";
} else {
w.style.display = "block";
setTimeout(function(){
document.getElementById("searchbox").focus()
}, 30);
}
}
function div_off(nm){document.getElementById(nm).style.display="none";}
window.onbeforeunload = function(e){div_off("submenu");}
/* Disable the Search feature if we are not operating from CGI, since */
/* Search is accomplished using CGI and will not work without it. */
if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
document.getElementById("search_menubutton").style.display = "none";
}
/* Used by the Hide/Show button beside syntax diagrams, to toggle the */
function hideorshow(btn,obj){
var x = document.getElementById(obj);
var b = document.getElementById(btn);
if( x.style.display!='none' ){
x.style.display = 'none';
b.innerHTML='show';
}else{
x.style.display = '';
b.innerHTML='hide';
}
return false;
}
var antiRobot = 0;
function antiRobotGo(){
if( antiRobot!=3 ) return;
antiRobot = 7;
var j = document.getElementById("mtimelink");
if(j && j.hasAttribute("data-href")) j.href=j.getAttribute("data-href");
}
function antiRobotDefense(){
document.body.onmousedown=function(){
antiRobot |= 2;
antiRobotGo();
document.body.onmousedown=null;
}
document.body.onmousemove=function(){
antiRobot |= 2;
antiRobotGo();
document.body.onmousemove=null;
}
setTimeout(function(){
antiRobot |= 1;
antiRobotGo();
}, 100)
antiRobotGo();
}
antiRobotDefense();
</script>
<h2>File Format Changes in SQLite</h2>
<p>
The <a href="fileformat2.html">underlying file format</a> for SQLite databases does not
change in incompatible ways. There are literally trillions of
SQLite database files in circulation and the SQLite developers are
committing to supporting those files for decades into the future.
</p>
<p>
Prior to SQLite version 3.0.0 (2004-06-18), the file format did
sometimes change from one release to the next. But since that time,
the file format has been fully backwards compatible.
</p>
<p>
By "backwards compatible" we mean that
newer versions of SQLite can always read and write database files created
by older versions of SQLite.
It is often also the case that SQLite is "forwards compatible", that
older versions of SQLite can read and write database files created by
newer versions of SQLite. But there are sometimes forward compatibility
breaks. Sometimes new features are added to the file format. For
example, <a href="wal.html">WAL mode</a> was added in version 3.7.0 (2010-07-21).
SQLite 3.7.0 and later can read and write all database files created
by earlier versions of SQLite. And earlier versions of SQLite can
read and write database files created by SQLite 3.7.0 and later
<i>as long as the database does not use WAL mode</i>. But versions of
SQLite prior to version 3.7.0 cannot read nor write SQLite database files
that make use of WAL mode.
</p>
<h2>Summary</h2>
<ul>
<li><p>
Newer versions of SQLite can always read and/or write database files
created by older versions of SQLite, back to version 3.0.0 (2004-06-18).
<li><p>
Older versions of SQLite back to version 3.0.0 can read and write
database files created by newer versions of SQLite as long as the
database does not make use of newer features that are unknown to that
older version.
</ul>
<p align="center"><small><i>This page last modified on <a href="https://sqlite.org/docsrc/honeypot" id="mtimelink" data-href="https://sqlite.org/docsrc/finfo/pages/formatchng.in?m=8415958e0a">2022-09-13 14:04:46</a> UTC </small></i></p>