Пожалуйста, ознакомьтесь с SQLite Release 3.8.10 , выпущенным 7 мая 2015 года. Этот выпуск впервые содержит утилиту sqldiff.exe программа для вычисления различий между двумя файлами базы данных SQLite. Скорее всего, эта программа также будет частью будущих выпусков.
Средство командной строки sqldiff.exe должно работать для всех поддерживаемых операционных систем и предлагает несколько параметров для изменения поведения вывода. Пример использования:
sqldiff [options] database1.sqlite database2.sqlite
Если параметры не указаны, то результатом sqldiff.exe будут операторы SQL, которые преобразуют database1.sqlite
(исходная база данных) в database2.sqlite
(база данных назначения).
Однако есть и определенные ограничения. Например, утилита sqldiff.exe (по крайней мере в настоящее время) не отображает различия в TRIGGER, VIEW или виртуальных таблицах.
Пример команд и выходных данных
Я взял простую базу данных хранилища значений ключей (db1.sqlite
) и сделал
его копия (db2.sqlite
). Затем я вставил одну пару ключ-значение в
db2.sqlite
. После этого я выполнил следующую команду:
sqldiff db1.sqlite db2.sqlite
и получил следующий вывод:
INSERT INTO my_table (rowid, "key", value) VALUES (1, 'D: \ Test \ Test.txt', x'aabbccdd ');
ОБНОВЛЕНИЕ my_table_size SET counter = 1 ГДЕ rowid = 1;
Таблица my_table_size
была автоматически обновлена TRIGGER после вставки пары ключ-значение в my_table
. Затем я снова запустил sqldiff.exe , но на этот раз с db2.sqlite
в качестве первого аргумента и db1.sqlite
в качестве второго аргумента:
sqldiff db2.sqlite db1.sqlite
и получил следующий вывод:
DELETE FROM my_table WHERE rowid = 1;
ОБНОВЛЕНИЕ my_table_size SET counter = 0 ГДЕ rowid = 1;
sqldiff ссылки для скачивания
Начиная с SQLite версии 3.10.2 , выпущенной 20 января 2016 г., 32-разрядные двоичные файлы для sqldiff можно напрямую загрузить со страницы загрузки SQLite . Их можно найти в архивах sqlite tools для соответствующих операционных систем (см. Разделы Precompiled Binaries ). Например, вот ссылки на архивы sqlite tools версии 3.28.0:
Для версий SQLite до версии 3.10.2 веб-сайт SQLite содержит 32-разрядные двоичные файлы для sqldiff , но не ссылается на них. Вот ссылки на sqldiff версии 3.8.10:
Если вам нужны 64-битные двоичные файлы, вам нужно загрузить исходные коды и скомпилировать их самостоятельно. (Файл sqldiff.c находится в подкаталоге tool архива, содержащего источники.)