簡體   English   中英

房間 - 遷移沒有正確 - Android

[英]Room - Migration didn't properly - Android

我在Room使用, addMigrations1 to 2 addMigrations使用但是我說:

 Expected:
TableInfo{name='tblCourseContentList', columns={downloadPackageSize=Column{name='downloadPackageSize', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, id_0=Column{name='id_0', type='INTEGER', affinity='3', notNull=false, primaryKeyPosition=0}, downloadPackageUrl=Column{name='downloadPackageUrl', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, status=Column{name='status', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, id_courseContentList=Column{name='id_courseContentList', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1}, sections=Column{name='sections', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}}, foreignKeys=[], indices=[]}
 Found:
TableInfo{name='tblCourseContentList', columns={}, foreignKeys=[], indices=null}

這是我的AppDataBase.java

@Database(entities = {ClassModel.class,
        CourseContentListModel.class,
        _0.class,
        Section.class,
        Content.class,
        DownloadBatchIdsSubCourse.class,
        DownloadBatchIdsMainCourse.class
}, version = 2, exportSchema = false)
@TypeConverters({
        EnrollConverter.class,
        TeacherConverter.class,
        DetailConverter.class,
        Detail_Converter.class,
        Detail__Converter.class,
        //region CourseContentList
        SectionConverter.class,
        ContentConverter.class,
        ConverterListsCourseContentList.class
        //endregion
})
public abstract class AppDatabase extends RoomDatabase {
    public static final String DATABASE_NAME = "MyDatabase.db";
    private static volatile AppDatabase instance;
    private static final Object LOCK = new Object();

    public abstract WorkTableDao workTableDao();

    public abstract CourseContentListDao courseContentListDao();

    public abstract CourseContentSubListDao courseContentSubListDao();

    public static AppDatabase getInstance() {
        if (instance != null) {
            return instance;
        } else {
            return null;
        }
    }


    private static final Migration MIGRATION_LATEST = new Migration(1, 2) {
        @Override
        public void migrate(SupportSQLiteDatabase db) {

        }
    };

    public static AppDatabase getInstance(Context context) {
        if (instance == null) {
            synchronized (LOCK) {
                if (instance == null) {
                    instance = Room.databaseBuilder(context.getApplicationContext(),
                            AppDatabase.class, DATABASE_NAME)
                            .addMigrations(MIGRATION_LATEST)
                            .build();
                }
            }
        }

        return instance;
    }
}

您必須在此方法中添加具有新列的遷移文本

@Override
        public void migrate(SupportSQLiteDatabase db) {

        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM