Android SQLite onUpgrade добавить новую таблицу, не касаясь старых - PullRequest
0 голосов
/ 15 января 2019

У меня есть настройка базы данных в Android прямо сейчас. база данных и таблицы работают нормально. Однако, когда я хочу добавить новую таблицу и использовать onUpgrade - база данных создается, но не работает должным образом. Как в таблице выглядит создан, но я не могу добавить данные к нему. при попытке приложения вылетает. Все таблицы версии 1 по-прежнему выглядят хорошо.

вот как выглядит мой onUpgrade:

private val newDatabase = listOf<String>(
        "Database1"
    )
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {

    newDatabase.forEach{
        val table2 = "CREATE TABLE $it ($ID INTEGER PRIMARY KEY, $AVERAGETIME TEXT DEFAULT \"0\",$DATE TEXT DEFAULT \"0\")"
        db?.execSQL(table2)
    }
}

мой oncreate выглядит точно так же, просто использует другой массив строк:

override fun onCreate(db: SQLiteDatabase?) {

        originalDatabase.forEach {
            val table1 =
                "CREATE TABLE $it ($ID INTEGER PRIMARY KEY, $AVERAGETIME TEXT DEFAULT \"0\",$DATE TEXT DEFAULT \"0\")"
            db?.execSQL(table1)
        }

    }

Это лучший способ добавить новую таблицу? после того, как таблица сделана, она кажется пустой и работает неправильно. хотя для него установлены значения по умолчанию.

Я пытался просмотреть другие сообщения, но не могу найти ни одного конкретного ответа

1 Ответ

0 голосов
/ 15 января 2019

Вот рабочий пример Delivery Droid Database Class

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...