Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: database, migration, room

Как работают миграции БД? Приходилось ли их реализовывать?

Вопрос объясняет механизм обновления схемы базы данных без потери данных.

Короткий ответ

Миграции — это SQL-скрипты, которые изменяют структуру БД между версиями. Реализуются через Migration в Room или SQL-файлы в SQLDelight.

Длинный ответ

1. Room Migration

val MIGRATION_1_2 = object : Migration(1, 2) {
    override fun migrate(db: SupportSQLiteDatabase) {
        db.execSQL("ALTER TABLE users ADD COLUMN age INTEGER DEFAULT 0")
    }
}

DatabaseBuilder
    .addMigrations(MIGRATION_1_2)

2. SQLDelight Migration

  1. Добавить SQL-файл в папку migrations:

    /sqldelight/migrations/2.sql
  2. Содержимое файла:

    ALTER TABLE users ADD COLUMN age INTEGER DEFAULT 0;

Важно:

  • Всегда тестируйте миграции на копии продовой БД.

  • Используйте fallbackToDestructiveMigration только для разработки.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Kotlin

    Kotlin

Ключевые слова

#database

#migration

#room

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.