Не устанавливаются метообновления Есть решение

1

Добрый день!

Мы обнаружили, что после установки клиентом нашего приложения не устанавливаются метообновления, и, соответственно, приложение не работает должным образом.

Посмотрев журнал установки, мы заметили, что метка времени у клиента на момент установки приложения равна 1638946640, а метка времени имеющегося файла с метообновлениями меньше (1635761604).

Таким образом, возникает два вопроса: как формируется метка времени на момент установки приложения и как тогда именовать файлы метообновлений, если заранее не известно, какая исходная метка времени будет у будущего клиента, установившего впервые наш продукт? И как избежать таких ситуаций в будущем?

Пока не можем сообразить, где и в чем косяк.

Помогите разобраться, пожалуйста. Спасибо!

4 комментария

  • +2
    Eugen Nichikov Eugen Nichikov 9 декабря 2021 19:37 #

    Мета-обновления не срабатывают при первой установке плагина.

    Для этого есть файл install.php

    Особенность мета-обновлений в том, что они помогают обновиться до следующей версии (удалить лишние файлы, внести правки в БД и т.п.).


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

    Исходная метка будет либо в момент установки плагина, либо в момент установки последнего мета-обновления.

    Соответственно, когда пользователь обновит плагин через Инсталлер, выполнятся все мета-обновления с меткой больше исходной.

    • +1
      Программный Синтез Программный Синтез 9 декабря 2021 20:00 #

      Спасибо за ответ!

      В таком случае не ясно, как следует решить проблему.

      Ситуация условно следующая: пусть есть таблица `table`. Допустим, в 1-й версии приложения эта таблица имеет только лишь поле `name`. В следующей версии приложения добавляется поле `value` посредством файла метообновления. При обновлении продукта это поле создатся у пользователя, все в порядке.

      Но у другого пользователя, который установит продукт впервые, поля `value` не будет в таблице, т.к. файл метообновления не будет выполнен в таком случае. Такая ситуация неверна, и как раз происходит у нас. Кроме того, судя по документации Webasyst, нельзя изменять таблицы путем изменения файла db.php.

      Или все-таки можно (нужно) в данном случае изменять db.php для того, чтобы как раз у новых пользователей была актуальная таблица?

      • +2
        Михаил Ушенин Михаил Ушенин Webasyst 10 декабря 2021 08:58 #

        Или все-таки можно (нужно) в данном случае изменять db.php для того, чтобы как раз у новых пользователей была актуальная таблица?

        Да: в новой версии продукта нужно сделать оба изменения:

        1. Обновить db.php (для новых пользователей).
        2. Добавить метаобновление (для старых пользователей).

      • +1
        Программный Синтез Программный Синтез 9 декабря 2021 20:35 #

        Думаю, я уже ответил сам на свой вопрос)

        Добавить комментарий

        Чтобы добавить комментарий, зарегистрируйтесь или войдите