yii2-db-manager
yii2-db-manager copied to clipboard
Бекап избранных таблиц
Можно ли реализовать такую возможность? Запомнить это, как пресет. Аналогия из SypexDumper
Думаю в этом расширении не получится такое реализовать.
Почему? В mysqldump есть же опция --ignore-table=db_name.tbl_name
Позволяет игнорировать таблицу tbl_name базы данных db_name при создании дампа. Если из дампа необходимо исключить несколько таблиц, необходимо использовать несколько параметров "--ignore-table", указывая по одной таблице в каждом из параметров.
и --tables
Перекрывает действия параметра --databases (-B). Все аргументы, следующие за этим параметром, трактуются как имена таблиц.
http://adw0rd.com/2009/6/7/mysqldump-and-cheat-sheet/
Такие опции очень нужны.
-
Мне не нужно бекапить таблицу logs или sessions. Также не нужно бекапить большую таблицу (~ 1 млн записей), которая меняется редко.
-
Большую таблицу я хочу забекапить отдельно - раз в неделю. Или же несколько таблиц для экспорта по фтп на другой сервер #7
Имеется в виду что gui дерева таблиц с чек боксами напротив не будет. Попробую реализовать когда буду у рабочего компьютера. Опишите подробней как это должно выглядеть.
Как это работает у меня на примере SypexDumper.
- В нем есть возможность создавать jobs
- У меня четыре таких настройки
-
- Делает dump всего, кроме трех таблиц (2 служебные, и одна большая). Тут полезна опция "--ignore-table"
-
- Делаю dump большой таблицы - раз в неделю. Тут больше подходит опция --tables
-
- Делаю dump общих таблиц (цены, скидки)... Отправляю этот dump по фтп и там делаю по крону импорт
-
- Раз в месяц делаю dump всех таблиц
Думаю. что в конфиге вместо
'customDumpOptions' => [
'mysqlForce' => '--force',
'somepreset' => '--triggers --single-transaction',
'pgCompress' => '-Z2 -Fc',
],
логичнее добавить что-то вроде
'jobs' => [
'daily' => [
'mysqlForce' => '--force',
'somepreset' => '--triggers --single-transaction',
'pgCompress' => '-Z2 -Fc',
'ignoreTables' => ['{%session}', '{%contacts}']
],
'weekly-contacts' => [
'mysqlForce' => '--force',
'somepreset' => '--triggers --single-transaction',
'pgCompress' => '-Z2 -Fc',
'includeTables' => ['{%contacts}']
'path' => '@app/backups/weekly',
],
'export' => [
'mysqlForce' => '--force',
'somepreset' => '--triggers --single-transaction',
'pgCompress' => '-Z2 -Fc',
'includeTables' => ['{%akcii}', '{%prices}']
'path' => '@app/backups/export',
],
]
и соответственно, тут https://github.com/Beaten-Sect0r/yii2-db-manager/blob/master/src/commands/DumpController.php#L27
учесть название job-a, чтоб можно его было передать по крону.