Использование SQLite-manager (в форме XUL) на Mac.Как я могу сравнить 2 SQLite-файлы?
Как я могу отличить файл SQLite от одного, представленного кем-то еще в команде, и включить его изменения?
Спасибо.
Использование SQLite-manager (в форме XUL) на Mac.Как я могу сравнить 2 SQLite-файлы?
Как я могу отличить файл SQLite от одного, представленного кем-то еще в команде, и включить его изменения?
Спасибо.
Я считаю, что вы могли бы использовать следующее, в комбинации:
$ diff sqlite-file-1.sql sqlite-file-2.sql > sqlite-patch.diff
$ patch -p0 sqlite-file-1.sql sqlite-patch.diff
Я надеюсь, что работает для вас. В противном случае, я настоятельно рекомендую консультации с человеко-страниц:
$ man diff
$ man patch
EDIT: Хорошо, вот вся проходная.
Во-первых, дамп базы данных:
$ 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
Может быть с помощью этого tool: http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html? Но вы можете использовать решение, предоставленное @indienick условия, что вы первый дамп бинарных базы данных SQLite с чем-то вроде: SQLite x.db .dump> output.sql
Надеется, что это помогает, Moszi
Как именно я сбрасываю свой SQLite? У меня нет установленной командной строки sqlite. –
Если вы используете стандартное поле Mac, тогда у вас должен быть sqlite в/usr/bin/sqlite3;) – Moszi
В прошлый раз, когда я проверял, вам не нужно было беспокоиться о сбросе SQLite-файлов, поскольку SQLite работает напрямую с файлом .sql - он не все скрывается в двоичных плоских файлах, таких как PostgreSQL или MySQL. – nesv
Мы можем использовать sqldiff Utility Программа:
https://www.sqlite.org/sqldiff.html
Он сравнивает источник базы данных назначения и генерировать SQL команды, чтобы сделать исходный эквивалент к месту назначения.
- Любые различия в содержании парных строк выводятся как Updates.
- Строки в базе данных база данных, которая не может быть сопряжена, выводится как УДАЛИТЬ.
- Строки в базе данных , которые не могут быть сопряжены, являются вывод как INSERT.
Мы должны загрузить исходники и скомпилировать его, из папки инструмента.
Не нужно компилировать, он доступен как предварительно скомпилированный двоичный файл на странице [страница загрузки] (https://www.sqlite.org/download.html) – user
Вам не нужно возиться с папкой 'tool'. Просто './configure && make sqldiff'. –
Не работает, поскольку SQLite является двоичным файлом, единственный результат, который вы получаете, это «бинарные файлы отличаются» –
Не изменится ли эта схема, если вы измените схему, в которой уже есть данные? Например, если вы добавите поле и хотите исправить дополнительное поле в существующую базу данных. –
+1 @indienick Полезный совет! – Medorator