Sử dụng trình quản lý SQLite (ở dạng XUL) trên máy Mac.Tôi có thể phân biệt 2 tệp SQLite bằng cách nào?
Tôi làm cách nào để phân biệt tệp SQLite với tệp do người khác gửi trong nhóm và kết hợp các thay đổi của anh ấy?
Cảm ơn.
Sử dụng trình quản lý SQLite (ở dạng XUL) trên máy Mac.Tôi có thể phân biệt 2 tệp SQLite bằng cách nào?
Tôi làm cách nào để phân biệt tệp SQLite với tệp do người khác gửi trong nhóm và kết hợp các thay đổi của anh ấy?
Cảm ơn.
Tôi tin rằng bạn có thể sử dụng sau đây, kết hợp:
$ diff sqlite-file-1.sql sqlite-file-2.sql > sqlite-patch.diff
$ patch -p0 sqlite-file-1.sql sqlite-patch.diff
Tôi hy vọng rằng tác phẩm cho bạn. Nếu không, tôi đặc biệt khuyên bạn nên tham khảo ý kiến của các trang hướng dẫn:
$ man diff
$ man patch
EDIT: Được rồi, đây là toàn bộ bước đi.
Đầu tiên, đổ cơ sở dữ liệu:
$ sqlite test1.sql .dump > test1.sql.txt
$ sqlite test2.sql .dump > test2.sql.txt
Tiếp theo, tạo ra một file diff:
$ diff -u test1.sql.txt test2.sql.txt > patch-0.1.diff
Và, cuối cùng, để áp dụng các bản vá:
$ patch -p0 test1.sql.txt patch-0.1.diff
Có thể sử dụng này công cụ: http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html? Nhưng bạn có thể sử dụng giải pháp được cung cấp bởi @indienick cung cấp đầu tiên bạn đổ cơ sở dữ liệu SQLite nhị phân với một cái gì đó như: sqlite x.db .dump> output.sql
Hope this helps, Moszi
Làm cách nào để kết xuất SQLite của tôi? Tôi chưa cài đặt dòng lệnh sqlite. –
Nếu bạn sử dụng hộp Mac chuẩn, thì bạn nên có sqlite trong/usr/bin/sqlite3;) – Moszi
Lần cuối cùng tôi kiểm tra, bạn không cần phải lo lắng về việc bán các tệp SQLite, vì SQLite hoạt động trực tiếp với tệp .sql - nó không phải là tất cả ẩn đi trong tập tin nhị phân phẳng, như PostgreSQL hoặc MySQL. – nesv
Chúng ta có thể sử dụng các sqldiff Chương trình Utility:
https://www.sqlite.org/sqldiff.html
Nó sẽ so sánh các nguồn cơ sở dữ liệu đích và tạo ra các lệnh SQL để làm nguồn tương đương đích.
- Mọi khác biệt về nội dung của hàng được ghép nối được xuất dưới dạng UPDATE.
- Hàng trong nguồn nguồn cơ sở dữ liệu không thể ghép nối được xuất dưới dạng DELETE.
- Hàng trong địa chỉ đích cơ sở dữ liệu không thể ghép nối được là đầu ra dưới dạng INSERT.
Chúng tôi phải tải xuống các nguồn và biên dịch từ thư mục công cụ.
Không cần biên dịch, nó có sẵn dưới dạng nhị phân biên dịch sẵn trên [trang tải xuống] (https://www.sqlite.org/download.html) – user
Bạn không cần phải bận tâm với thư mục 'công cụ'. Chỉ cần './configure && make sqldiff'. –
Không hoạt động, vì SQLite là tệp nhị phân, kết quả duy nhất bạn nhận được là "tệp nhị phân khác" –
Sẽ không ngắt nếu bạn sửa đổi lược đồ đã có dữ liệu trong đó? Ví dụ: nếu bạn thêm một trường và muốn vá trường bổ sung vào cơ sở dữ liệu hiện có. –
+1 @indienick Mẹo hữu ích! – Medorator