Как я могу различить 2 файла SQLite? - PullRequest
22 голосов
/ 02 января 2011

Использование SQLite-manager (в форме XUL) на Mac.

Как я могу отличить файл SQLite от файла, представленного кем-то другим в команде, и включить его изменения?

Спасибо.

Ответы [ 3 ]

30 голосов
/ 02 января 2011

Я полагаю, вы могли бы использовать следующее в комбинации:

$ diff sqlite-file-1.sql sqlite-file-2.sql > sqlite-patch.diff
$ patch -p0 sqlite-file-1.sql sqlite-patch.diff

Я надеюсь, что это работает для вас. В противном случае, я настоятельно рекомендую обратиться к man-страницам:

$ man diff
$ man patch

РЕДАКТИРОВАТЬ: Хорошо, вот весь проход.

Сначала выведите базы данных:

$ sqlite test1.sql .dump > test1.sql.txt
$ sqlite test2.sql .dump > test2.sql.txt

Далее создайте файл сравнения:

$ diff -u test1.sql.txt test2.sql.txt > patch-0.1.diff

И, наконец, применить патч:

$ patch -p0 test1.sql.txt patch-0.1.diff
11 голосов
/ 20 июня 2015

Мы можем использовать служебную программу sqldiff:

https://www.sqlite.org/sqldiff.html

Она будет сравнивать источник с базами данных назначения и генерировать команды SQL, чтобы сделать источник эквивалентным месту назначения.

  • Любые различия в содержании парных строк выводятся как ОБНОВЛЕНИЯ.
  • Строки в базе данных source , которые не могут быть спарены, выводятся как УДАЛЕНИЯ.
  • Строки в базе данных destination , которые не могут быть сопряжены, выводятся как INSERT.

Мы должны загрузить исходные коды и скомпилировать их,из папки инструментов.

1 голос
/ 02 января 2011

Может быть, с помощью этого инструмента: http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html? Но вы можете использовать решение, предоставленное @indienick, при условии, что вы сначала сбросите двоичную базу данных sqlite с помощью чего-то вроде:

Надеюсь, это поможет, Moszi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...