我有两个表,person已经存在(将列userid添加为 外键)
@Entity(tableName = TABLE_NAME)
data class Person(
@PrimaryKey @ColumnInfo(name = CLIENT_ID) var id: Long,
@ColumnInfo(name = USER_ID)var userId : Int = 1) : Parcelable {}
这是新添加的类,具有人的外键 类(用户ID)
@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{}
这里我在数据库中有两个表。 现在,我需要编写迁移代码来创建新表吗?
答案 0 :(得分:1)
如果要将数据从以前的版本迁移到新版本 然后
是的。您必须编写迁移代码。
如果您只想迁移架构而不是数据。
则无需编写迁移逻辑。只需在“房间”构建器中添加fallbackToDestructiveMigration()
。
示例:
Room.databaseBuilder(appContext, AppDatabase.class, AppDatabase.DATABASE_NAME)
.fallbackToDestructiveMigration()
.build();