У меня есть следующие таблицы:
@Entity(
tableName = "users"
)
class Users {
@PrimaryKey(autoGenerate = true)
var id: Long? = null
@NonNull
var name: String? = null
}
@Entity(
tableName = "pets",
foreignKeys = [
ForeignKey(
entity = Users::class,
parentColumns = ["id"],
childColumns = ["owner_id"],
onDelete = ForeignKey.CASCADE
)
]
)
class Pets {
@PrimaryKey(autoGenerate = true)
var id: Long? = null
@NonNull
var name: String? = null
@ColumnInfo(name = "owner_id")
var ownerId: Long? = null
}
Когда я запускаю миграцию, которая удаляет все строки таблицы пользователей, таблица pets не изменяется. Строки не удаляются автоматически.
object Migration_1_2 : Migration(1, 2) {
override fun migrate(database: SupportSQLiteDatabase) {
database.execSQL("""
DELETE FROM users
""")
}
}
Даже когда я выполняю следующий фрагмент кода перед миграцией, он не работает.
database.execSQL("PRAGMA foreign_keys=ON;");
Что мне делать, чтобы onDelete = ForeignKey.CASCADE
работа?