Кэш чатов
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
package core.database.data
|
||||
|
||||
import androidx.room.migration.Migration
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
|
||||
/**
|
||||
* Миграция с версии 1 на версию 2
|
||||
* Добавляет поля для офлайн-синхронизации:
|
||||
* - syncStatus (TEXT, по умолчанию 'SYNCED')
|
||||
* - isDeletedLocally (INTEGER, по умолчанию 0)
|
||||
* - isEditedLocally (INTEGER, по умолчанию 0)
|
||||
* - editedContent (TEXT, nullable)
|
||||
* - lastUpdated (INTEGER, по умолчанию текущее время)
|
||||
*/
|
||||
val MIGRATION_1_2 = object : Migration(1, 2) {
|
||||
override fun migrate(database: SupportSQLiteDatabase) {
|
||||
// Добавляем новые колонки для синхронизации
|
||||
database.execSQL("""
|
||||
ALTER TABLE messages ADD COLUMN syncStatus TEXT NOT NULL DEFAULT 'SYNCED'
|
||||
""".trimIndent())
|
||||
|
||||
database.execSQL("""
|
||||
ALTER TABLE messages ADD COLUMN isDeletedLocally INTEGER NOT NULL DEFAULT 0
|
||||
""".trimIndent())
|
||||
|
||||
database.execSQL("""
|
||||
ALTER TABLE messages ADD COLUMN isEditedLocally INTEGER NOT NULL DEFAULT 0
|
||||
""".trimIndent())
|
||||
|
||||
database.execSQL("""
|
||||
ALTER TABLE messages ADD COLUMN editedContent TEXT
|
||||
""".trimIndent())
|
||||
|
||||
// lastUpdated по умолчанию 0, будет обновлён при первой синхронизации
|
||||
database.execSQL("""
|
||||
ALTER TABLE messages ADD COLUMN lastUpdated INTEGER NOT NULL DEFAULT 0
|
||||
""".trimIndent())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user