2012-02-19 44 views
5

Hãy tha thứ cho tôi nếu câu hỏi này đã được trả lời - Tôi đã tìm kiếm và không thể tìm thấy nó.Chiến lược cập nhật ứng dụng Android (với cơ sở dữ liệu)

Tôi có một ứng dụng Android mà tôi muốn nâng cấp và nó sử dụng Cơ sở dữ liệu SQLite. Tôi muốn cập nhật một số logic ứng dụng trong ứng dụng, nhưng sẽ không có bản cập nhật nào cho lược đồ hoặc nội dung cơ sở dữ liệu. Về cơ bản tôi cần giữ cơ sở dữ liệu chính xác như là dành cho người dùng.

Tôi có cần phải làm bất cứ điều gì trong onUpgrade để đảm bảo rằng cơ sở dữ liệu được lưu giữ hay tôi có thể để nguyên nội dung DB cho bản cập nhật này không?

Trả lời

4

Điều này related article có thể giúp bạn với câu hỏi của bạn.

Cách tôi hiểu nó, là bạn cần phải đặt mã thay đổi cơ sở dữ liệu của bạn trong onUpdate() nếu bạn muốn cập nhật giữa các phiên bản. Nhưng kể từ khi bạn không có ý định, và có lẽ giữ phiên bản cơ sở dữ liệu giống nhau, sau đó bạn sẽ rất có thể không có vấn đề gì cả.

+1

nó không phải là một câu hỏi về khả năng. sqlite sẽ giữ lại cấu trúc và dữ liệu giữa các phiên bản. giữa các phiên bản CHỈ. cùng một ứng dụng với một phím ký khác nhau không truy cập vào hộp cát đã chiếm trước đó của nó, không quan tâm đến việc có hay không nói sandbox vẫn tồn tại. UPVOTED :) –

5

Phương thức onUpgrade() được sử dụng các lần thay đổi phiên bản. Điều đó có nghĩa là cơ sở dữ liệu được lưu trữ trong điện thoại cần phải được thay đổi hoặc xóa hoặc xóa và tạo cơ sở dữ liệu mới. Vì ứng dụng của bạn không có bất kỳ yêu cầu nào trong số này, bạn có thể để lại nội dung DB cho bản cập nhật này.

+0

một chút bối rối, m8. tôi hiểu (và đồng ý với) ý bạn là gì, nhưng cách viết của nó, có vẻ như SQLite sẽ được tái tạo giữa các phiên bản, KHÔNG phải là trường hợp. –

1

Việc nâng cấp sẽ KHÔNG can thiệp vào SQLite. Các thay đổi đối với cấu trúc db sẽ không được triển khai trừ khi bạn lập trình làm như vậy (trong phương thức onUpgrade) hoặc bạn gỡ cài đặt và cài đặt lại ứng dụng của mình.

Miễn là ứng dụng CÙNG mà bạn đang nâng cấp, db của bạn sẽ không bị ảnh hưởng và dữ liệu của bạn cũng sẽ không bị ảnh hưởng. Nếu bạn thay đổi khóa ký được sử dụng trong việc tạo gói ứng dụng, db của bạn sẽ được tạo lại.

Ngược lại, nếu bạn thay đổi cấu trúc cơ sở dữ liệu tại bất kỳ điểm đã cho nào, phương thức onUpgrade của bạn sẽ được phát. Bạn sẽ bị buộc phải sao lưu, thả, tạo lại và repopulate bảng đã được thay đổi giữa các phiên bản (oher bảng vẫn bị ảnh hưởng cả về cấu trúc và dữ liệu).

LƯU Ý: Khi gỡ lỗi, tôi chỉ gỡ cài đặt và cài đặt lại ứng dụng mỗi khi tôi thực hiện thay đổi db, nhưng trong quá trình sản xuất, bạn KHÔNG muốn làm điều đó.

Các vấn đề liên quan