Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如果在房间数据库中添加了新表,是否有必要添加迁移?_Android_Sql_Android Room - Fatal编程技术网

Android 如果在房间数据库中添加了新表,是否有必要添加迁移?

Android 如果在房间数据库中添加了新表,是否有必要添加迁移?,android,sql,android-room,Android,Sql,Android Room,我有两个表,person已经存在(添加了userid列作为 外键) 这是新添加的类,它具有person的外键 类(用户ID) 我在数据库中有两个表。 现在,我是否需要编写迁移代码来创建新表?如果要将数据从以前的版本迁移到新版本 然后 是的。您必须编写迁移代码。 如果您只想迁移架构而不迁移数据。 那么就不需要编写迁移逻辑了。只需在Room builder中添加fallbackToDestructiveMigration() 示例: Room.databaseBuilder(appContext

我有两个表,person已经存在(添加了userid列作为 外键)

这是新添加的类,它具有person的外键 类(用户ID)

我在数据库中有两个表。
现在,我是否需要编写迁移代码来创建新表?

如果要将数据从以前的版本迁移到新版本 然后

是的。您必须编写迁移代码。

如果您只想迁移架构而不迁移数据。 那么就不需要编写迁移逻辑了。只需在Room builder中添加
fallbackToDestructiveMigration()

示例:

Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
            .fallbackToDestructiveMigration()
            .build();
参考
    @Entity(tableName = Profile.TABLE_NAME,
    foreignKeys = [ForeignKey(entity= Person::class,
    parentColumns = [(Person.USER_ID)],
    childColumns = [(Profile.USER_ID)],
    onDelete = ForeignKey.CASCADE)])
    @Parcelize
    data class Profile(@PrimaryKey(autoGenerate = true)
    var userId: Int,
    var name: String? = null):Parcelable{}
Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
            .fallbackToDestructiveMigration()
            .build();