2017-05-20 19 views

Trả lời

9

Giả sử các thực thể phòng của bạn phù hợp với lược đồ bảng hiện tại của bạn, bạn có thể tiếp tục sử dụng cùng một cơ sở dữ liệu/bảng.

Phòng quản lý một bảng tổng thể được khởi tạo trên sự sáng tạo hoặc nâng cấp cơ sở dữ liệu, vì vậy bạn cần phải tăng phiên bản cơ sở dữ liệu của bạn và cung cấp một sự chuyển đổi giả:

@Database(entities = SomeEntity.class, version = EXISTING_VERSION + 1) 
public class MyDatabase extends RoomDatabase { 
    // ... 
} 

MyDatabase db = Room.databaseBuilder(context, MyDatabase.class, "db_name") 
        .addMigrations(new Migration(EXISTING_VERSION, EXISTING_VERSION + 1) { 
         @Override 
         public void migrate(SupportSQLiteDatabase database) { 
          // NOOP 
         } 
        }).build(); 
+0

đã không kiểm tra nó, nhưng tôi sẽ đánh dấu nó như là một câu trả lời, vì tham số tên cơ sở dữ liệu có thể cho phép bạn sử dụng bất kỳ cơ sở dữ liệu trước đó và đã tồn tại nào. –

+0

Bạn có biết cách thử nghiệm di chuyển này không? Tôi đã xem https://developer.android.com/topic/libraries/architecture/room.html#testing nhưng tôi không chắc chắn cách kiểm tra di chuyển từ sqlite hiện tại vào phòng. – AdamMc331

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