Подтвердить что ты не робот

Как я могу разбить 2 файла SQLite?

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

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

Спасибо.

4b9b3361

Ответ 1

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

$ 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:

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

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

$ patch -p0 test1.sql.txt patch-0.1.diff

Ответ 2

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

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

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

  • Любые различия в содержимом парных строк выводятся как UPDATE.
  • Строки в базе данных источника, которые не могут быть спарены, выводятся как Удаления.
  • Строки в базе данных назначения, которые не могут быть спарены, как INSERT.

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

Ответ 3

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

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