Перейти к содержанию

Версии и обновление приложения

В этой статье описывается, как определить версии  вашего приложения и использовать Upgrader для выполнения запросов обновления между версиями.

Обновляетесь с IP.Board 3.x?

Если у вас есть приложение, которое изначально было разработано под IP.Board 3.x, вам нужно будет сделать следующее. Не имеет значения установили ли вы сразу версию 4.x или обновились с 3.x.

  • Создайте новое приложение в обычном режиме в панели администратора.
  • Если вы установили сразу версию 4.x, а не обновились, вручную создайте таблицы в вашей SQL базе данных.
  • Во вкладке “Database Schema” в центре разработчика импортировать таблицы базы данных. Важно использовать вкладку "Импорт из базы данных",  так как другие варианты будут предполагать создание новых таблиц.
  • На вкладке “Versions” добавьте все ваши предыдущие версии и запросы, необходимые для обновления – более подробно это рассмотрено ниже. Существует возможность загрузить ваш более ранний файл versions.xml, чтобы быстро их импортировать, но  нужно будет указать обновления для каждой версии вручную.

Как определить версии

В Центре разработчика есть вкладка “Versions”, которая показывает все версии вашего приложения. Важно, чтобы там всегда была указана последняя версия приложения. Например для нового приложения у вас должна быть указана версия "1.0.0". Когда вы создадите новую версию приложения (версии 1.0.0), вы должны сразу после этого добавить следующую версию (например 1.0.1),  вы укажете информацию о версии при построении приложения, а специальная версия upg_working будет очищена и готова к следующей новой версии. Это нужно для того, чтобы когда вы работаете над приложением, система автоматически вносила любые изменения, которые вы сделали, в базу данных для того, чтобы обновить его с текущей версии до той, которую вы указали.

Схема базы данных

Во вкладке  “Database Schema”  можно определить все таблицы, которые использует ваше приложение. Когда приложение устанавливается в первый раз, создаются таблицы. По мере внесения изменений в схему базы данных, система автоматически добавит соответствующие запросы, чтобы обновить приложение до последней версии.

Например: у вас есть текущая финальная версия приложения на вкладке “Versions” 1.0.0 и у вас есть таблица на вкладке “Database Schema”. Вы публикуете эту версию, а затем добавляете версию 1.0.1 во вкладке “Versions”. Позже вы добавляете столбец в таблицу на вкладке “Database Schema”. При публикации версии 1.0.1, система автоматически:

  • Для установки: просто создает таблицу, как это было указано, в том числе с добавленным столбом.
  • Для обновлений: добавляет столбец.

Вам не нужно вручную добавлять столбец в процессе обновления.

Запросы пользовательской версии и код

Хотя система Database Schema хороша при автоматической обработке таблиц, принадлежащих вашему приложению, может понадобиться так же выполнить и другие запросы (например UPDATE запросы или запросы, чтобы добавить столбцы в таблицы, не принадлежащие вашему приложению). Это делается на вкладке Versions. Просто нажмите на значок "+" для версии, для которой должен быть выполнен запрос (например, если запрос должен быть выполнен при обновлении до версии 1.0.1 запрос, нужно нажать "+" для версии 1.0.1), однако, вы просто добавите это в текущую версию, над которой вы работаете, которая будет обозначаться как "upgrade_working" в списке "Versions").

Вы увидите, что есть специальная "install" версия, которая может быть использована для задания запросов, которые должны быть выполнены при установке. Может потребоваться добавить запрос как к "install" версии, так и к версии с которой вы работаете . Например, если вы работаете над версией 1.0.1, и хотите добавить столбец в таблицу core_groups, который вы не добавляли в версии 1.0.1, вам нужно будет добавить запрос для версии 1.0.1 (для тех, кто обновился с 1.0.0) и специальной "install" версии (для новых установок).

Если вам необходимо запустить код, который не может быть выражен в виде одного запроса, вы также можете использовать пользовательский код. Для этого нажмите на кнопку "</>" для версии, которая нуждается в пользовательском коде. Это создаст файл в директории applications/<ваше_приложение>/setup/<version>/ с каркасом для работы. Просто откройте этот файл и следуйте инструкциям в нем, чтобы добавить туда свой код. Вы также можете сделать это для "install" версии.

Если вы перешли с IP.Board 3, вы можете вручную создать файл queries.php в директории applications/<your_app>/setup/<version>/ с содержимым старого файла mysql_updates.php (установив $SQL переменную). Поскольку эта функция только для поддержки устаревших версий, файл нельзя создать из центра разработчика, только вручную. Если у вас небольшое количество запросов, может быть проще переписать их вызовом метода \IPS\Db::i() и добавить, используя обычный метод (нажав на кнопку "+" для нужной версии в Центре Разработчика).

Удаление кода

Система  автоматически удалит все таблицы, определенные схемой базы данных вашего приложения при его удалении. Если вам необходимо выполнить код в дополнение к этому, вы можете сделать это с расширением Uninstall. В Центре разработчиков для вашего приложения, на вкладке “Расширения”  нажмите кнопку "+" для core > Uninstall и создайте расширение (название не важно). Это создаст файл с каркасом в каталоге applications/<your_app>/extensions/core/Uninstall/. Просто откройте файл и следуйте инструкциям в нем, чтобы добавить свой код.




×
×
  • Создать...

Важная информация

Используя наш сайт вы соглашаетесь с нашей Политикой конфиденциальности