Khi bạn lần đầu tiên gặp thông báo này, rất có thể bạn đang làm việc với một phiên bản cơ sở dữ liệu chưa được phát hành. Nếu đúng như vậy, rất có thể bạn không nên tăng phiên bản cơ sở dữ liệu . Chỉ cần xóa dữ liệu ứng dụng sẽ giúp bạn vượt qua ngoại lệ.
Nếu bạn không tăng cơ sở dữ liệu (khuyến nghị):
Bạn nên xóa dữ liệu ứng dụng của ứng dụng khỏi cài đặt Android. Ngoài ra, bạn có thể gỡ cài đặt phiên bản ứng dụng trước đó và sau đó cài đặt phiên bản mới để vượt qua ngoại lệ. Cách tiếp cận thứ hai này không hoạt động trong một số điều kiện nhất định (chẳng hạn như khi cho phép sao lưu được bật)
Vì việc xóa dữ liệu ứng dụng luôn hoạt động, tôi thực hiện theo lộ trình đó mọi lúc.
Nếu bạn tăng phiên bản cơ sở dữ liệu:
Bạn sẽ cần viết mã di chuyển cơ sở dữ liệu để giải thích cho bất kỳ thay đổi nào đối với lược đồ cơ sở dữ liệu. Xem tại đây để biết thông tin về việc di chuyển.
Thay thế cho việc viết mã di chuyển cơ sở dữ liệu là gọi fallbackToDestructiveMigration
trình xây dựng cơ sở dữ liệu Phòng. Đây có lẽ không phải là một ý kiến hay. Việc quên xóa cuộc gọi này và sau đó quên nâng cấp cơ sở dữ liệu sẽ dẫn đến mất dữ liệu.
Database database = Room.databaseBuilder(context, Database.class, DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();
Một lần nữa, không cần tăng phiên bản cơ sở dữ liệu hoặc quay trở lại quá trình di chuyển phá hủy nếu lược đồ cơ sở dữ liệu trước đó không tồn tại trong môi trường hoang dã .