- 首先在繼承RoomBase的類當中,定義Migration
-
static Migration migration = new Migration(1,2) { @Override public void migrate(@NonNull SupportSQLiteDatabase database) { database.execSQL("alter table student_table ADD COLUMN begin_time INTEGER NOT NULL DEFAULT 0"); } };
-
- RooDataBase().addMigrations(migration).build
-
Room.databaseBuilder(mContext.getApplicationContext(),WorkRoomDataBase.class,"work_database") .addMigrations(ALL_MIGRATIONS) ....
-
- 注意,定義INTEGER字段的時候 需要加NOT NULL DEFAULT 0,否則匯報錯(IlegalStateException)
-
SQLite 存儲類
每個存儲在 SQLite 數據庫中的值都具有以下存儲類之一:
存儲類 描述 NULL 值是一個 NULL 值。 INTEGER 值是一個帶符號的整數,根據值的大小存儲在 1、2、3、4、6 或 8 字節中。 REAL 值是一個浮點值,存儲為 8 字節的 IEEE 浮點數字。 TEXT 值是一個文本字符串,使用數據庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲。 BLOB 值是一個 blob 數據,完全根據它的輸入存儲。 SQLite 的存儲類稍微比數據類型更普遍。INTEGER 存儲類,例如,包含 6 種不同的不同長度的整數數據類型。