diff options
Diffstat (limited to 'debian/sqldiff.1')
-rw-r--r-- | debian/sqldiff.1 | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/debian/sqldiff.1 b/debian/sqldiff.1 new file mode 100644 index 0000000..7760e7f --- /dev/null +++ b/debian/sqldiff.1 @@ -0,0 +1,115 @@ +.TH sqldiff 1 "2018-05-10" +.SH NAME +sqldiff - sqlite3 database difference utility +.SH SYNOPSIS +.B sqldiff +.RI [ options ] +.I database1.sqlite database2.sqlite +.SH DESCRIPTION +The +.B sqldiff +binary is a command-line utility program that displays the differences +between SQLite databases. The usual output is an SQL script that will +transform +.I database1.sqlite +(the "source" database) into +.I database2.sqlite +(the "destination" database). + +The +.B sqldiff +utility works by finding rows in the source and destination that are +logical "pairs". The default behavior is to treat two rows as pairs if +they are in tables with the same name and they have the same rowid, or +in the case of a WITHOUT ROWID table if they have the same PRIMARY +KEY. Any differences in the content of paired rows are output as +UPDATEs. Rows in the source database that could not be paired are +output as DELETEs. Rows in the destination database that could not be +paired are output as INSERTs. + +The +.B --primarykey +flag changes the pairing algorithm slightly so that the +schema-declared PRIMARY KEY is always used for pairing, even on tables +that have a rowid. This is often a better choice for finding +differences, however it can lead to missed differences in the case of +rows that have one or more PRIMARY KEY columns set to NULL. +.SH OPTIONS +.TP +.BI \-\-changset\ FILE +Do not write changes to standard output. Instead, write a (binary) +changeset file into +.IR FILE . +The changeset can be interpreted using the sessions extension to +SQLite. +.TP +.BI \-\-lib\fR\ LIBRARY\fR,\ \-L\fR\ LIBRARY +Load the shared library or DLL file +.I LIBRARY +into SQLite prior to computing the differences. This can be used to +add application-defined collating sequences that are required by the +schema. +.TP +.B --primarykey +Use the schema-defined PRIMARY KEY instead of the rowid to pair rows +in the source and destination database. (See additional explanation +below.) +.TP +.B --schema +Show only differences in the schema not the table content +.TP +.B --summary +Show how many rows have changed on each table, but do not show the +actual changes +.TP +.BI --table\fR\ TABLE +Show only the differences in content for +.IR TABLE , +not for the entire database +.TP +.B --transaction +Wrap SQL output in a single large transaction +.TP +.B --vtab +Add support for handling FTS3, FTS5 and rtree virtual tables. See +below for details. +.SH LIMITATIONS +The +.B sqldiff +utility is unable to compute differences for rowid tables for which +the rowid is inaccessible. An example of a table with an inaccessible +rowid is: + +.nf +CREATE TABLE inaccessible_rowid( + "rowid" TEXT, + "oid" TEXT, + "_rowid_" TEXT +); +.fi + +The +.B sqldiff +utility does not (currently) display differences in TRIGGERs or VIEWs. + +By default, differences in the schema or content of virtual tables are +not reported on. + +However, if a virtual table implementation creates real tables +(sometimes referred to as "shadow" tables) within the database to +store its data in, then sqldiff.exe does calculate the difference +between these. This can have surprising effects if the resulting SQL +script is then run on a database that is not exactly the same as the +source database. For several of SQLite's bundled virtual tables (FTS3, +FTS5, rtree and others), the surprising effects may include corruption +of the virtual table content. + +If the +.B --vtab +option is passed to +.BR sqldiff , +then it ignores all underlying shadow tables belonging to an FTS3, +FTS5 or rtree virtual table and instead includes the virtual table +differences directly. +.SH SEE ALSO +.BR sqlite3 (1). |