Как сделать резервную копию базы данных PrestaShop?

Иногда приходится делать резервную копию базы данных PrestaShop перед различными изменениями, например, импортом данных через инструмент импорта PrestaShop, установкой модуля и пр. Как это делается и какие способы есть?

 Приведено несколько способов создания резервной копии (или SQL-дампа) базы данных PrestaShop.

 Самым надежным считаю четвёртый способ, но он не всегда удобный. Не самым надежным считаю третий способ (через инструмент панели управления) – например, за все время у меня было несколько случаев, когда ISPmanager выгружал неполный SQL-дамп.

**Способ первый: через встроенный в** **PrestaShop инструмент**

 В админке переходим в:

* для PS1.3-1.4: «Tools -> DB Backup»
* для PS1.5-1.6: «Advanced Parameters -> DB Backup»

 Устанавливаем требуемые параметры:

* «Ignore statistics tables» (не включать в бэкап данные о статистике) – отключите, если вы собираете статистику средствами PrestaShop и она вам нужна;
* «Backup all tables»: только у PS1.3 и более ранних версий PrestaShop; это тоже самое, что и «Ignore statistics tables», но только вопрос поставлен реверсно;
* «Drop existing tables during import»: только у PS1.4 и более поздних версий PrestaShop; означает - удалять существующие таблицы, когда дамп будет импортироваться в базу данных, которая уже содержит таблицы; выбрать «да», если вы будете импортировать созданный ранее SQL-дамп в существующую базу данных, уже содержащую таблицы PrestaShop.

 Делаем бэкап. Теперь бэкап хранится в архиве, как правило, Gzip: /admin/backups/*.sql.gz

 Его можно скачать через тот же интерфейс инструмента или оставить как-есть.

**Способ второй: через инструмент** **PhpMyAdmin**

 Доступ к инструменту PhpMyAdmin вам должен быть предоставлен хостинг-провайдером, как правило, через панель управления хостинг-услугой приводится на него ссылка. PhpMyAdmin можно назвать «де-факто» инструментом по работе с базами данных, поэтому он почти всегда есть в распоряжении у клиента хостера; инструкции по работе с этим инструментом – полно, в том числе включая инструкции по созданию SQL-дампов баз данных, в силу этого не привожу подробную инструкцию.

 Краткая инструкция по созданию SQL-дампа базы данных через PhpMyAdmin:

* открыть инструмент PhpMyAdmin;
* выбрать базу данных сайта на PrestaShop;
* нажать на вкладку «Экспорт»;
* указать параметры экспорта (для большинства случаев оставить параметры как есть – приемлемый выбор);
* нажать «OK» и дождаться появление окна загрузки SQL-дампа, а затем указать, куда сохранить файл у себя на компьютере (процедура займет некоторое время, которое зависит от размера файла и скорости соединения с Интернет).

**Способ третий: через инструмент панели управления**

 Здесь, какие панели управления имеются в виду? - ISPmanager, CPanel и прочие.

 Вы найдете множество инструкций в Интернет о том, как сделать SQL-дамп базы данных для той панели управления, которая вам предоставлена хостинг-провайдером. Но все же приведу краткую инструкцию для одной из них, которая популярна у нас в России и странах СНГ.

 Краткая инструкция создания SQL-дампа в ISPmanager:

* через меню перейти в «Базы данных»;
* выбрать базу данных из списка;
* в горизонтальном меню (выше списка) нажать кнопку «Скачать дамп»;
* нажать «OK» и дождаться появление окна загрузки SQL-дампа, а затем указать, куда сохранить файл у себя на компьютере (процедура займет некоторое время, которое зависит от размера файла и скорости соединения с Интернет).

**Способ четвертый: через стандартную консольную утилиту mysqldump**

 Для использования утилиты mysqldump необходимо выполнить команду в консоли (шелле), но предварительно понадобится «зайти» на сервер через SSH или VNC-клиент (не все хостинг провайдеры предоставляют доступ к серверу по SSH, а поддержка VNC есть только у выделенных серверов и VDS с виртуализацией KVM или XEN):

 mysqldump --user=DBUSER --password=PASSWORD DBNAME >prestashop.sql

 в этом примере нужно заменить указанные параметры на верные значения:

* DBUSER – пользователь базы данных;
* PASSWORD – пароль указанного пользователя;
* DBNAME – название базы данных, SQL-дамп которой требуется получить;

 prestashop.sql – название файла SQL-дампа, который появится в текущей директории (из которой выполняется команда) после выполнения команды.