Есть три различных способа работы с данными расширения, которые гарантируют их своевременное резервное копирование и восстановление:

Хранилище пар «ключ-значение» Plesk

Это рекомендуемый способ, подходящий в большинстве случаев. Идея этого способа – хранить данные расширения и работать с ними с помощью следующих методов:

Таким образом, все данные будут храниться в Хранилище пар «ключ-значение» Plesk, для которого автоматически создается резервная копия, включающая и остальные данные Plesk. Кроме того, данные из хранилища пар «ключ-значение» могут быть безопасно и корректно восстановлены. В итоге можно сказать, что этот подход избавляет вас от необходимости выполнения каких-либо дополнительных шагов по резервному копированию и восстановлению данных расширения.

Базы данных SQLite

Все данные, сохраненные расширением в локальной базе данных, будут сохранены в файловой системе в папке /var/ в Plesk (используйте метод pm_Context::getVarDir() для получения ее точного местонахождения). Эта папка автоматически сохраняется Plesk при каждом резервном копировании сервера. Данные расширения будут восстановлены вместе с остальными данными Plesk во время полного восстановления сервера.

Примечание: Данные расширения не включаются в резервную копию, если она выполняется только для подписки или учетной записи клиента или реселлера.

Примечание: Данные расширения не будут восстановлены в случае частичного восстановления (выбранных учетных записей или подписок) из полной резервной копии сервера.

Для обеспечения целостности данных вашего расширения, пожалуйста, имейте в виду следующую важную информацию.

Предупреждение: В ходе восстановления данных Plesk из резервной копии ID некоторых восстановленных объектов Plesk могут измениться. Если ваше расширение сохраняет в базе данных ID таких объектов Plesk, после восстановления они могут устареть и стать некорректными.

Использование GUID или имен в качестве ссылок на объекты Plesk там, где это необходимо, поможет сохранить целостность данных вашего расширения в ходе процессов резервного копирования и восстановления.

Хуки резервного копирования SDK

В редких случаях, когда специфика определенных данных расширения делает невозможным использование хранилища пар «ключ-значение», вместо него можно использовать механизм хуков резервного копирования SDK.

Классы pm_Hook_Backup_Client, pm_Hook_Backup_Domain и pm_Hook_Backup_Server предоставляют методы backup() и restore(). В зависимости от характера данных, один или несколько этих классов надо использовать для создания классов расширения, которые наследуют и перезаписывают методы backup() и restore() с соответствующими инструкциями, объясняющими, как сохранять и восстанавливать тот или иной тип данных.