2017-02-06 7 views
2

Я использую базу данных ORMLite в своем приложении для Android, теперь я хочу изменить всю структуру базы данных (переименование таблиц, добавление/удаление столбцов, изменение отношений, .. .и т.д).Что происходит при изменении структуры базы данных ORMLite в приложении

Вопрос здесь, есть ли какие-либо конфликты в устройствах с моим ранее установленным приложением? другими словами, при обновлении приложения ORMLite оставляет какие-либо следы от предыдущей установки, которые будут создавать конфликты с новым? !! поэтому, если у меня есть таблица с именем parent, и я изменил ее имя на guardian, у меня будет две таблицы сейчас в новой версии? !!

Если ответ No, значит, что-то похожее на версию базы данных?

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

ответ

0

Я особо не использовал ORMLite. Но это просто ORM, что означает, что он не решит, будет ли таблица удалена или нет на основе определенного условия. Это то, что клиент должен делать конкретно на основе своих бизнес-правил. Теперь в Android есть конкретные способы обновить существующую схему базы данных, не отбрасывая существующие таблицы. https://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

Но обновление схемы базы данных на SQLIte имеет множество ограничений, т.е. существует так много операций, которые не поддерживаются в отличие от полномасштабной СУБД. Но это одна из причин, почему SQLite такой легкий. Как правило, во время цикла разработки попытайтесь как можно скорее завершить стабильную схему базы данных, которая нуждается в дополнительных дополнениях (SQLIte специально не поддерживает удаление столбцов и т. Д.). Как только вы находитесь в производстве, и вы не хотите играть с данными пользователя, вам лучше всего реализовать логику обновления.

Но если вы все еще хотите, чтобы удалить таблицу в явном виде, я вижу есть API для такого же в ORMLite -

http://ormlite.com/javadoc/ormlite-core/com/j256/ormlite/table/TableUtils.html

+0

, к сожалению, это не поможет мне в моей ситуации, вы дали мне предположения, не фактов, а API TableUtils используется при удалении таблиц, но уже существующих. –

 Смежные вопросы

  • Нет связанных вопросов^_^