Правильный способ обработки старых версий мобильного приложения при изменении схемы базы данных

У меня есть ионное мобильное приложение для Android, которое подключается к серверу ruby ​​на rails api, и это приложение использует postgresql в качестве сервера базы данных.

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

Случай 1: добавление новых столбцов
Проблема возникает для релиза, когда, например, у меня есть несколько новых столбцов, добавленных в определенные таблицы в БД, чтобы собрать дополнительную информацию, для которой соответствующие текстовые поля также были добавлены в пользовательский интерфейс приложения.
Здесь пользователи более новой версии приложения будут работать должным образом (отправлять эти 2 информации в столбцы), но более старые версии не будут отправлять эти 2 значения полей

Случай 2: столбцы удалены
например, я реорганизую приложение главным образом и должна нормализовать базу данных, так как раньше она была неэффективной, что даже приводит к разбивке таблиц и т. д. или удалению пары столбцов.
Здесь старые версии приложения будут просто зависать или не работать.

Я чувствую, что каждый бизнес-приложение, которое я создаю, будет иметь такой же сценарий для управления, и это должно быть общей проблемой для всех

Я нахожусь в процессе написания некоторой пользовательской логики, где приложение будет проверять при подключении к серверу API "флаг обновления", и если версия приложения будет принудительно обновлена, чтобы она работала с версией API, то приложение будет перенаправлено играть / магазин приложений.

Я хотел бы знать, как все справляются с этой проблемой, и я делаю правильный путь.

Есть ли какой-нибудь плагин или библиотека rails, которая уже решает эту конкретную проблему или помогает в этом. я знаю, что есть много доступных версий, но они не заботятся об этой проблеме [принудительное обновление приложения]

Пожалуйста, руководство

1 ответ

Я работал над проектом, в котором при запуске приложения для Android вызывался API для настройки. Этот API предоставит 2 поля: major_version а также minor_version, Если major_version из API конфигурации, который не совпадает с API-интерфейсом приложения, появится всплывающее окно с просьбой принудительно обновить приложение. Это будет на начальном экране, поэтому вы не сможете получить доступ к фактическому содержимому приложения, если не принудительно обновите свое приложение. Если вы не хотите принудительного обновления между двумя версиями приложения или двумя версиями API, у вас есть возможность настроить minor_version,

Другие вопросы по тегам