Обновление системы

Это страница содержит описание для SuiteCRM 8.x. Описание для SuiteCRM 7.x. находится здесь.

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

1. Подготовка к обновлению системы

Перед обновлением системы сверьтесь с таблицей совместимости и убедитесь, что у вас установлены все необходимые компоненты.

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

Рекомендуем сначала запустить процесс обновления в отдельном экземпляре системы и протестировать полученный результат. После успешного тестирования повторите процесс обновления на рабочем экземпляре SuiteCRM.

По умолчанию команды обновления устанавливают для директивы error_reporting менее строгий режим для подавления предупреждений, присваивая ей значение E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE & ~E_WARNING.
Если вы хотите установить более строгий режим, укажите -vvv для каждой из команд. Этот ключ присвоит директиве error_reporting значение E_ALL.

Обратите внимание: в процессе обновления из корневой папки системы, а также из папки public/legacy могут быть удалены любые файлы и папки, не относящиеся к основным файлам SuiteCRM.

Перед обновлением убедитесь, что переменная APP_ENV в файлах .env или .env.local установлена в значение prod.

1.1. Ограничения обновления

Если установлена версия 8.0.x - 8.1.x, но вы бы хотели обновиться до версии 8.3.x или более поздней версии - сначала обновитесь до версии 8.2.x, после чего вы сможете обновиться до желаемой конечной версии.

2. Обновление до версии 8.2 и более поздних

Процесс обновления с версии 8.0 до версии 8.1 рассматривается ниже.

Миграция с версий 7.x на 8.x рассматривается в этом разделе.

При обновлении между версиями SuiteCRM 8.x нет необходимости в каком-либо специальном пакете обновления. Для этого используется обычный установочный пакет той версии, до которой вы планируете произвести обновление.

  1. Скачайте необходимый пакет.

  2. В установленном экземпляре системы создайте папку <your-suitecrm-8-root-folder>/tmp/package/upgrade и скопируйте в неё скачанный пакет. При необходимости задайте соответствующие права доступа на скопированный файл.

  3. Из корневой папки SuiteCRM 8 запустите: ./bin/console suitecrm:app:upgrade -t "<версия>",

где <версия> - название пакета с устанавливаемой SuiteCRM 8, например: SuiteCRM-8.3.0

Пример:

./bin/console suitecrm:app:upgrade -t SuiteCRM-8.3.0

В результате выполнения обновления вы увидите приблизительно следующее:

В этой версии обновления сообщения, начинающиеся с libpng warning, можно игнорировать.

SuiteCRM Upgrade
============

Running: check-package
step: check-package | status: done
Package found in path
Running: extract-package
step: extract-package | status: done
Package extracted
Running: check-permissions
step: check-permissions | status: done
Permissions checked
Running: install-upgrade-package
step: install-upgrade-package | status: done
Successfully installed package
Running: run-migrations
step: run-migrations | status: done
Successfully run migrations
Running: legacy-post-upgrade
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: Interlace handling should be turned on when using png_read_image
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: Interlace handling should be turned on when using png_read_image
step: legacy-post-upgrade | status: done
Post Upgrade process complete
Running: clear-symfony-cache

2.1. Выполнение команды финализации

Если обновляемый экземпляр системы был значительно кастомизирован, на этом этапе могут возникнуть проблемы. Убедитесь, что изменённый код совместим как минимум с php версии 7.4.

Из корневой папки SuiteCRM 8 запустите: ./bin/console suitecrm:app:upgrade-finalize -t "<версия>",

где <версия> - название пакета с устанавливаемой SuiteCRM 8, например: SuiteCRM-8.3.0

Пример:

./bin/console suitecrm:app:upgrade-finalize -t SuiteCRM-8.3.0

2.1.1. Режимы слияния метаданных

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

По умолчанию используется режим keep.

  1. Режим KEEP

    • Этот режим сохранит все существующие ранее метаданные, слияние выполняться не будет.

    • Этот режим используется по умолчанию.

      В консоли выполните:

      ./bin/console suitecrm:app:upgrade-finalize -m keep
  2. Режим MERGE

    • Этот режим попытается объединить все существующие ранее метаданные с новыми метаданными. Объединение будет выполнено для каждого модуля.

    • Объединенные метаданные помещаются в папку custom соответствующего модуля: public/legacy/custom/<Module>/metadata

    • В эту же папку добавляется файл резервной копии предыдущей версии метаданных

      В консоли выполните:

      ./bin/console suitecrm:app:upgrade-finalize -m merge
  3. Режим OVERRIDE

    • Этот режим заменит все текущие настройки новой версией метаданных.

      В результате будут удалены все текущие файлы настроек из папки public/legacy/custom/<Module>/metadata!

      В консоли выполните:

      ./bin/console suitecrm:app:upgrade-finalize -m override

2.2. Переустановка прав

Если во время процесса миграции вы использовали пользователя/группу, которые не совпадают с теми, которые используются веб-сервером, вам следует переустановить соответствующие права.

2.3. Очистка кеша php (опционально)

Если вы используете OPCache, ACP или другие оптимизаторы, может потребоваться перезапуск веб-сервера, чтобы применённые изменения вступили в силу.

2.4. Вход в систему

Если все вышеперечисленные шаги были выполнены правильно, вы сможете войти в обновленный экземпляр SuiteCRM 8.

2.5. Отладка

Отладка рассматривается в разделе Файлы журнала и отладка системы.

3. Обновление с версии 8.0 до версии 8.1

При обновлении между версиями SuiteCRM 8.x нет необходимости в каком-либо специальном пакете обновления. Для этого используется обычный установочный пакет той версии, до которой вы планируете произвести обновление.

  1. Скачайте необходимый пакет .

  2. В установленном экземпляре системы создайте папку <your-suitecrm-8-root-folder>/tmp/package/upgrade и скопируйте в неё скачанный пакет. При необходимости задайте соответствующие права доступа на скопированный файл.

  3. Из корневой папки SuiteCRM 8 запустите:

    ./bin/console suitecrm:app:upgrade -t "<версия>"

    где <версия> - название пакета с устанавливаемой SuiteCRM 8, например: SuiteCRM-8.1.1

    Пример:

    ./bin/console suitecrm:app:upgrade -t SuiteCRM-8.1.1

    В результате выполнения обновления вы увидите приблизительно следующее:

    В этой версии обновления сообщения, начинающиеся с libpng warning, можно игнорировать.

    SuiteCRM Upgrade
    ============
    
    Running: check-package
    step: check-package | status: done
    Package found in path
    Running: extract-package
    step: extract-package | status: done
    Package extracted
    Running: check-permissions
    step: check-permissions | status: done
    Permissions checked
    Running: install-upgrade-package
    step: install-upgrade-package | status: done
    Successfully installed package
    Running: run-migrations
    step: run-migrations | status: done
    Successfully run migrations
    Running: legacy-post-upgrade
    libpng warning: Interlace handling should be turned on when using png_read_image
    libpng warning: Interlace handling should be turned on when using png_read_image
    libpng warning: Interlace handling should be turned on when using png_read_image
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: Interlace handling should be turned on when using png_read_image
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: iCCP: known incorrect sRGB profile
    libpng warning: Interlace handling should be turned on when using png_read_image
    step: legacy-post-upgrade | status: done
    Post Upgrade process complete
    Running: clear-symfony-cache
  4. При необходимости установите необходимые права доступа.

  5. Заново войдите в систему.

5. Файлы журнала и отладка системы

5.1. Файлы журнала

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

Есть несколько файлов журнала, которые могут предоставить дополнительную информацию:

  1. logs/upgrade.log

    Файл журнала, создаваемый при обновлении SuiteCRM 8.

  2. public/legacy/upgradeWizard.log

    Специальный журнал обновления, создаётся устаревшей частью приложения. файл создается на этапе legacy-post-upgrade.

  3. logs/<app-env-mode>/<app-env-mode>.log

    Основной журнал системы. Путь к файлу и имя меняются в соответствии со значением, установленным в переменной APP_ENV. Например, если значение установлено в prod, путь к файлу журнала будет logs/prod/prod.log

    В этом журнале скорее всего не будет содержаться много информации об обновлении.

  4. public/legacy/suitecrm.log

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

5.2. Переменная APP_ENV

При запуске приложения в рабочем режиме переменная APP_ENV в файлах .env или .env.local должна быть установлена в значение prod. Однако в этом режиме не вся отладочная информация будет регистрироваться.

Один из способов получить более детальную информацию — изменить значение переменной APP_ENV на qa (этот режим следует использовать только временно).

После этого вам, возможно, придется очистить кеш symfony.

6. Возможные проблемы

Обнаружена проблема при выполнении обновления между версиями 8.1.08.1.1.

Проблема состоит в том, что при обновлении SuiteCRM 8 во второй раз (например, в такой последовательности: 8.0.2 → 8.0.4 → 8.1.1) после запуска команды

./bin/console suitecrm:app:upgrade -t "<версия>"

будет отображена следующая ошибка:

CRITICAL  [php] Fatal Compile Error: require(): Failed opening required '/<pathtoSuiteCRM8>/cache/prod/ContainerZatgzYy/getConsole_ErrorListenerService.php'
(include_path='/<pathtoSuiteCRM8>/public/legacy/include/..:.:/usr/share/php')
["exception" => Symfony\Component\ErrorHandler\Error\FatalError^ { …}]

Решение: Переустановите права доступа и из корневой папки SuiteCRM 8 выполните команду:

./bin/console clear:cache

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.